{"id":296959,"date":"2020-01-10T15:00:21","date_gmt":"2020-01-10T15:00:21","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=296959"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=296959","title":{"rendered":"\u041f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 GreenPig"},"content":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/483458\/\">\n<ol>\n<li><a href=\"#entry\">\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/a><\/li>\n<li><a href=\"#libraryconnection\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/a><\/li>\n<li><a href=\"#where\">\u041a\u043b\u0430\u0441\u0441 Where <\/a><br \/> \n<ul>\n<li><a href=\"#partrequest\">\u0410\u0442\u043e\u043c\u0430\u0440\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/a><\/li>\n<li><a href=\"#complicatedqueries\">\u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#join\">\u041a\u043b\u0430\u0441\u0441 Join<\/a> <\/li>\n<li><a href=\"#query\">\u041a\u043b\u0430\u0441\u0441 Query<\/a> <br \/> \n<ul>\n<li><a href=\"#selection\">\u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u0438\u0437 \u0411\u0414 \u0441 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438<\/a><\/li>\n<li><a href=\"#union\">\u041c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u0441\u0430\u043c\u0438\u043c \u0441\u043e\u0431\u043e\u0439 \u0432\u043e \u0438\u043c\u044f \u043f\u043e\u0438\u0441\u043a\u0430<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>  <\/p>\n<pre><code class=\"sql\">      \u2554\u2550\u2550\u2550\u2557\u2554\u2550\u2550\u2550\u2557\u2554\u2550\u2550\u2550\u2557\u2554\u2550\u2550\u2550\u2557\u2554\u2557\u2500\u2554\u2557\u2500\u2500\u2500\u2500\u2554\u2550\u2550\u2550\u2557\u2554\u2550\u2550\u2557\u2554\u2550\u2550\u2550\u2557       \u2551\u2554\u2550\u2550\u255d\u2551\u2554\u2550\u2557\u2551\u2551\u2554\u2550\u2550\u255d\u2551\u2554\u2550\u2550\u255d\u2551\u255a\u2550\u255d\u2551\u2500\u2500\u2500\u2500\u2551\u2554\u2550\u2557\u2551\u255a\u2557\u2554\u255d\u2551\u2554\u2550\u2550\u255d       \u2551\u2551\u2554\u2550\u2557\u2551\u255a\u2550\u255d\u2551\u2551\u255a\u2550\u2550\u2557\u2551\u255a\u2550\u2550\u2557\u2551\u2554\u2557\u2500\u2551\u2500\u2500\u2500\u2500\u2551\u255a\u2550\u255d\u2551\u2500\u2551\u2551\u2500\u2551\u2551\u2554\u2550\u2557       \u2551\u2551\u255a\u2557\u2551\u2551\u2554\u2557\u2554\u255d\u2551\u2554\u2550\u2550\u255d\u2551\u2554\u2550\u2550\u255d\u2551\u2551\u255a\u2557\u2551\u2500\u2500\u2500\u2500\u2551\u2554\u2550\u2550\u255d\u2500\u2551\u2551\u2500\u2551\u2551\u255a\u2557\u2551       \u2551\u255a\u2550\u255d\u2551\u2551\u2551\u2551\u2551\u2500\u2551\u255a\u2550\u2550\u2557\u2551\u255a\u2550\u2550\u2557\u2551\u2551\u2500\u2551\u2551\u2500\u2500\u2500\u2500\u2551\u2551\u2500\u2500\u2500\u2554\u255d\u255a\u2557\u2551\u255a\u2550\u255d\u2551       \u255a\u2550\u2550\u2550\u255d\u255a\u255d\u255a\u255d\u2500\u255a\u2550\u2550\u2550\u255d\u255a\u2550\u2550\u2550\u255d\u255a\u255d\u2500\u255a\u255d\u2500\u2500\u2500\u2500\u255a\u255d\u2500\u2500\u2500\u255a\u2550\u2550\u255d\u255a\u2550\u2550\u2550\u255d                              5HHHG                  HH       HHHHHHH                9HHHA    HHHHHHHH5               HHHHHHHHHHHHHHHHHH  9HHHHH5             5HHHHHHHHHHHHHHHHHHHHHHHHHHH            HHHHHHHHHHHHHHHHHHHHHHHHHHHH          ;HHHHHHHHHHHHHHHHHHHHHHHHHHA           H2   HHHHHHHHHHHHHHHHHHHHHH                HHHHHHHHHHHHHHHHHHHHHHH9                 HHHHHHHHHHHHHHHHHHHHHHH                 AHHHHHHHHHHHHHHHHHHHHHH                  HHHHHHHHHHHHHHHHHHHHH9  iHS                   HHHHHHHHHHHHHHHHHHHHHHhh                    HHHHHHHHHHHHHHHHHH                   AA HHHHHHHHHHHHHH3                  &amp;H  Hi         HS Hr                  &amp;  H&amp;          H&amp;  Hi<\/code><\/pre>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h2 id=\"entry\">\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h2>\n<p>  <\/p>\n<p>\u0425\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u0432\u043e\u0435\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0430 php. \u041a\u0430\u043a\u0438\u0435 \u0436\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u043d\u0430 \u0440\u0435\u0448\u0430\u0435\u0442? \u0417\u0430\u0447\u0435\u043c \u044f \u0435\u0435 \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u0430 \u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u0432\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u044c\u0441\u044f? \u0427\u0442\u043e \u0436 \u043f\u043e\u043f\u044b\u0442\u0430\u044e\u0441\u044c \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u044d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b.<\/p>\n<p>  <\/p>\n<p><strong>GreenPig<\/strong> (\u0434\u0430\u043b\u0435\u0435 <strong>GP<\/strong>) \u2013 \u044d\u0442\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043b\u044e\u0431\u043e\u0433\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0432\u0430\u043c\u0438 php \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430. <\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0438 \u043b\u044e\u0431\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 <strong>GP<\/strong> \u0437\u0430\u0442\u043e\u0447\u0435\u043d \u043f\u043e\u0434 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u0430\u043c \u043f\u043e\u043b\u0435\u0437\u0435\u043d, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0411\u0414 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c sql \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Active record \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0443 \u043d\u0430\u0441 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435 \u0411\u0414 Oracle \u0438 \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043a\u0440\u0430\u043d\u043e\u0432 \u0441 \u0434\u0435\u0441\u044f\u0442\u043a\u0430\u043c\u0438 \u0434\u0436\u043e\u0439\u043d\u043e\u0432, \u0435\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f plsql \u0444\u0443\u043d\u043a\u0446\u0438\u0438, union all \u0438 \u0442.\u0434. \u0438 \u0442.\u043f., \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0438\u0447\u0435\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e, \u043a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c sql, \u043d\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f. <\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u0432\u0441\u0442\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441: \u043a\u0430\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c where \u0447\u0430\u0441\u0442\u044c sql \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438? <strong>GP<\/strong> \u043d\u0430\u0446\u0435\u043b\u0435\u043d, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 php where \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043b\u044e\u0431\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438. <\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0447\u0442\u043e \u0436\u0435 \u0441\u043f\u043e\u0434\u0432\u0438\u0433\u043b\u043e \u043c\u0435\u043d\u044f \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 (\u043a\u0440\u043e\u043c\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430)? \u042d\u0442\u043e \u0442\u0440\u0438 \u0432\u0435\u0449\u0438:<\/p>\n<p>  <\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u044d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u043e\u0441\u043a\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u0437 \u0411\u0414, \u0430 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e, \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438\u0437 \u0411\u0414:<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"php\">[     [0] =&gt; [         ['id'] =&gt; 1         ['type'] =&gt; 'car'         ['val_id'] =&gt; 1         ['name'] =&gt; '\u0432\u0435\u0441 (\u043a\u0433)'         ['value'] =&gt; 790     ],     [1] =&gt; [         ['id'] =&gt; 1         ['type'] =&gt; 'car'         ['val_id'] =&gt; 2         ['name'] =&gt; '\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438'         ['value'] =&gt; 24     ],     [2] =&gt; [         ['id'] =&gt; 1         ['type'] =&gt; 'car'         ['val_id'] =&gt; 3         ['name'] =&gt; '\u043b\u043e\u0448\u0430\u0434\u0438\u043d\u044b\u0435 \u0441\u0438\u043b\u044b'         ['value'] =&gt; 75     ],     [3] =&gt; [         ['id'] =&gt; 4         ['type'] =&gt; 'phone'         ['val_id'] =&gt; 10         ['name'] =&gt; '\u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c \u044d\u043a\u0440\u0430\u043d\u0430'         ['value'] =&gt; 5     ],     [4] =&gt; [         ['id'] =&gt; 4         ['type'] =&gt; 'phone'         ['val_id'] =&gt; 8         ['name'] =&gt; '\u0432\u0435\u0441 (\u043a\u0433)'         ['value'] =&gt; 0.12     ],     [5] =&gt; [         ['id'] =&gt; 4         ['type'] =&gt; 'phone'         ['val_id'] =&gt; 9         ['name'] =&gt; '\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438'         ['value'] =&gt; 1     ],     [6] =&gt; [         ['id'] =&gt; 4         ['type'] =&gt; 'phone'         ['val_id'] =&gt; 10         ['name'] =&gt; '\u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c \u044d\u043a\u0440\u0430\u043d\u0430'         ['value'] =&gt; 5     ],     [7] =&gt; [         ['id'] =&gt; 4         ['type'] =&gt; 'phone'         ['val_id'] =&gt; 8         ['name'] =&gt; '\u0432\u0435\u0441 (\u043a\u0433)'         ['value'] =&gt; 0.12     ],     [8] =&gt; [         ['id'] =&gt; 4         ['type'] =&gt; 'phone'         ['val_id'] =&gt; 9         ['name'] =&gt; '\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438'         ['value'] =&gt; 1     ],     [9] =&gt; [         ['id'] =&gt; 4         ['type'] =&gt; 'phone'         ['val_id'] =&gt; 10         ['name'] =&gt; '\u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c \u044d\u043a\u0440\u0430\u043d\u0430'         ['value'] =&gt; 5     ],     [10] =&gt; [         ['id'] =&gt; 4         ['type'] =&gt; 'phone'         ['val_id'] =&gt; 8         ['name'] =&gt; '\u0432\u0435\u0441 (\u043a\u0433)'         ['value'] =&gt; 0.12     ],     [11] =&gt; [         ['id'] =&gt; 4         ['type'] =&gt; 'phone'         ['val_id'] =&gt; 9         ['name'] =&gt; '\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438'         ['value'] =&gt; 1     ],     [12] =&gt; [         ['id'] =&gt; 1         ['type'] =&gt; 'car'         ['val_id'] =&gt; 1         ['name'] =&gt; '\u0432\u0435\u0441 (\u043a\u0433)'         ['value'] =&gt; 790     ],     [13] =&gt; [         ['id'] =&gt; 1         ['type'] =&gt; 'car'         ['val_id'] =&gt; 2         ['name'] =&gt; '\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438'         ['value'] =&gt; 24     ],     [14] =&gt; [         ['id'] =&gt; 1         ['type'] =&gt; 'car'         ['val_id'] =&gt; 3         ['name'] =&gt; '\u043b\u043e\u0448\u0430\u0434\u0438\u043d\u044b\u0435 \u0441\u0438\u043b\u044b'         ['value'] =&gt; 75     ],     [15] =&gt; [         ['id'] =&gt; 1         ['type'] =&gt; 'car'         ['val_id'] =&gt; 1         ['name'] =&gt; '\u0432\u0435\u0441 (\u043a\u0433)'         ['value'] =&gt; 790     ],     [16] =&gt; [         ['id'] =&gt; 1         ['type'] =&gt; 'car'         ['val_id'] =&gt; 2         ['name'] =&gt; '\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438'         ['value'] =&gt; 24     ],     [17] =&gt; [         ['id'] =&gt; 1         ['type'] =&gt; 'car'         ['val_id'] =&gt; 3         ['name'] =&gt; '\u043b\u043e\u0448\u0430\u0434\u0438\u043d\u044b\u0435 \u0441\u0438\u043b\u044b'         ['value'] =&gt; 75     ] ]<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043b\u0438\u0431\u043e \u0441\u0430\u043c\u0438\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043d\u0443\u0436\u043d\u044b\u0439 \u0432\u0438\u0434, \u043b\u0438\u0431\u043e \u0434\u0435\u043b\u0430\u0442\u044c N \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0411\u0414 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0430. \u0410 \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044f, \u0434\u0430 \u0435\u0449\u0435 \u0438 \u0441 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u043e\u0439? <strong>GP<\/strong> \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 <strong>GP<\/strong>:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">[     [1] =&gt; [         ['prod_type'] =&gt; 'car'         ['properties'] =&gt; [             [1] =&gt; [                 ['name'] =&gt; '\u0432\u0435\u0441 (\u043a\u0433)'                 ['value'] =&gt; 790             ]             [2] =&gt; [                 ['name'] =&gt; '\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438'                 ['value'] =&gt; 24             ]             [3] =&gt; [                 ['name'] =&gt; '\u043b\u043e\u0448\u0430\u0434\u0438\u043d\u044b\u0435 \u0441\u0438\u043b\u044b'                 ['value'] =&gt; 75             ]         ]     ]     [4] =&gt; [         ['prod_type'] =&gt; 'phone'         ['properties'] =&gt; [             [10] =&gt; [                 ['name'] =&gt; '\u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c \u044d\u043a\u0440\u0430\u043d\u0430'                 ['value'] =&gt; 5             ]             [8] =&gt; [                 ['name'] =&gt; '\u0432\u0435\u0441 (\u043a\u0433)'                 ['value'] =&gt; 0.12             ]             [9] =&gt; [                 ['name'] =&gt; '\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438'                 ['value'] =&gt; 1             ]         ]     ] ]<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044f \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430: <code>-&gt;pagination(1, 10)-&gt;sort('id')<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043d\u0435 \u0442\u0430\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u0430\u044f, \u043d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043e\u043d\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f (\u0430 \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430). \u0415\u0441\u043b\u0438 \u0432 \u0411\u0414 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0435\u043a\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u044d\u0442\u0438\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u0442\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c, \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c (join\u2019\u0438\u0442\u044c) \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 (\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u0440\u0430\u0437, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435). \u0422\u0430\u043a \u0432\u043e\u0442\u00a0GP\u00a0\u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c where \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0434\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439. \u0411\u043b\u0438\u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0443 \u044d\u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e.<\/p>\n<p>  <\/p>\n<p>\u041d\u0443 \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0432\u0441\u0435 \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u0434\u043b\u044f \u0411\u0414 Oracle, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f mySql. \u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0440\u044f\u0434 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412\u043f\u043e\u043b\u043d\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0447\u0442\u043e \u044f \u0438\u0437\u043e\u0431\u0440\u0435\u043b \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434, \u043d\u043e \u044f \u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u043e \u0438\u0441\u043a\u0430\u043b \u0438 \u043d\u0435 \u043d\u0430\u0448\u0435\u043b \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u2013 \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044e \u0441\u0430\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c, \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u0430\u044f \u0441\u0443\u0442\u044c, \u0431\u0435\u0437 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 <strong>GP<\/strong>, \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/falbin.ru\/documentation\/greenpig\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a>, \u0432 \u043d\u0435\u0439 \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0432\u0441\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c.<\/p>\n<p>  <\/p>\n<h2 id=\"libraryconnection\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/h2>\n<p>  <\/p>\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 composer: <code>composer require falbin\/green-pig-dao<\/code> <\/p>\n<p>  <\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0430\u0431\u0440\u0438\u043a\u0443, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439.<\/p>\n<p>  <\/p>\n<h2 id=\"where\">\u041a\u043b\u0430\u0441\u0441 Where<\/h2>\n<p>  <\/p>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c where \u0447\u0430\u0441\u0442\u044c sql \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043b\u044e\u0431\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438. <\/p>\n<p>  <\/p>\n<h3 id=\"partrequest\">\u0410\u0442\u043e\u043c\u0430\u0440\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/h3>\n<p>  <\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0443\u044e, \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041e\u043d\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c: <code>[\u043a\u043e\u043b\u043e\u043d\u043a\u0430, \u0437\u043d\u0430\u043a\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435]<\/code><br \/>  \u041f\u0440\u0438\u043c\u0435\u0440: <code>[\u2018name\u2019, \u2018like\u2019, \u2018%\u0412\u0430\u0441%\u2019]<\/code><\/p>\n<p>  <\/p>\n<ul>\n<li><strong>\u041f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/strong>\u00a0\u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f\u0441\u044f \u0432 sql \u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0430, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0432 \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c sql \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041f\u0440\u0438\u043c\u0435\u0440:\u00a0<code>['LOWER(name)', 'like', '%\u0432\u0430\u0441%']<\/code><\/li>\n<li><strong>\u0412\u0442\u043e\u0440\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/strong>\u00a0&#8212; \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0441\u0442\u0440\u043e\u043a\u0430, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f\u0441\u044f \u0432 sql \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430\u043c\u0438. \u041c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: <em>=, &gt;, &lt;, &gt;=, &lt;=, &lt;&gt;, like, not like, between, not between, in, not in<\/em>.<\/li>\n<li><strong>\u0422\u0440\u0435\u0442\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/strong>\u00a0\u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e, \u0442\u0430\u043a \u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430. Where \u043a\u043b\u0430\u0441\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442 \u0432 sql \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u043c\u0435\u0441\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c.<\/li>\n<li><strong>\u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c sql.<\/strong>\u00a0\u0411\u044b\u0432\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u043e\u0441\u044c \u0432 sql \u043a\u043e\u0434 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u042d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f, \u0443\u043a\u0430\u0437\u0430\u0432 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0430 \u2018sql\u2019 (\u0434\u043b\u044f 3\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430). \u041f\u0440\u0438\u043c\u0435\u0440:\u00a0<code>[\u2018LOWER(name)\u2019, \u2018like\u2019, \u2018sql\u2019 =&gt; &quot;LOWER('$name')&quot;]<\/code><\/li>\n<li><strong>\u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c bind<\/strong> \u2014 \u044d\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0431\u0438\u043d\u0434\u043e\u0432. \u041f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u041d\u0435\u043b\u044c\u0437\u044f \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 sql \u2013 \u0447\u0435\u0440\u0435\u0432\u0430\u0442\u043e \u0438\u043d\u044a\u0435\u043a\u0446\u0438\u044f\u043c\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0430\u043c\u043e\u043c\u0443 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a:\u00a0<code>['LOWER(name)', 'like', 'sql' =&gt; &quot;LOWER(:name)&quot;, 'bind'=&gt; ['name' =&gt; $name] ]<\/code><\/li>\n<li><strong>\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 in<\/strong>\u00a0\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a:\u00a0<code>['curse', 'not in', [1, 3, 5]]<\/code>. \u041a\u043b\u0430\u0441\u0441 Where \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0442\u0430\u043a\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 sql \u043a\u043e\u0434:\u00a0<code>curse not in (:al_where_jCgWfr95kh, :al_where_mCqefr95kh, :al_where_jCfgfr9Gkh)<\/code><\/li>\n<li><strong>\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 between<\/strong>\u00a0\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a:\u00a0<code>['curse', ' between', 1, 5]<\/code>. \u041a\u043b\u0430\u0441\u0441 Where \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0442\u0430\u043a\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 sql \u043a\u043e\u0434:\u00a0<code>curse between :al_where_Pi4CRr4xNn and :al_where_WiPPS4NKiG<\/code><br \/>  \u041d\u043e \u0431\u0443\u0434\u044c\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b, \u0435\u0441\u043b\u0438 \u0442\u0440\u0435\u0442\u0438\u0439 \u0438 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u044d\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438, \u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0441\u043e\u0431\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0438\u0434\u0435\u0442 \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0438\u0437 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0434\u0430\u0442 \u0438, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f sql \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u043a \u0434\u0430\u0442\u0435. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0434\u0430\u0442\u0435 (\u0443 mySql \u0438 Oracle \u043e\u043d\u0438 \u0440\u0430\u0437\u043d\u044b\u0435) \u0438 \u0435\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438). \u041c\u0430\u0441\u0441\u0438\u0432 <code>['build_date', 'between', '01.01.2016', '01.01.2019']<\/code> \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d \u0432 sql: <code>build_date between TO_DATE(:al_where_fkD7nZg5lU, 'dd.mm.yyyy hh24:mi::ss') and TO_DATE(:al_where_LdyVRznPF8, 'dd.mm.yyyy hh24:mi::ss')<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"complicatedqueries\">\u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b<\/h3>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 \u0447\u0435\u0440\u0435\u0437 \u0444\u0430\u0431\u0440\u0438\u043a\u0443: <code>$wh = GP::where();<\/code> <\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u00ab\u0430\u0442\u043e\u043c\u0430\u0440\u043d\u044b\u043c\u0438 \u0447\u0430\u0441\u0442\u044f\u043c\u0438\u00bb \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>linkAnd()<\/code> \u0438\u043b\u0438 <code>linkOr()<\/code>. \u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">\/\/ sql: (old &gt; 18 and old &lt; 50) $wh-&gt;linkAnd([     ['old', '&lt;', 18],     ['old', '&gt;', 50] ]);  \/\/ sql: (old &lt; 18 or old &gt; 50) $wh-&gt;linkOr([     ['old', '&lt;', 18],     ['old', '&gt;', 50] ]);<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 <strong>linkAnd\/linkOr<\/strong> \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 Where \u2013 $wh. \u0422\u0430\u043a \u0436\u0435 \u0432\u0441\u0435 \u00ab\u0430\u0442\u043e\u043c\u0430\u0440\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438\u00bb, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, <strong>\u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0432 \u0441\u043a\u043e\u0431\u043a\u0438<\/strong>. <\/p>\n<p>  <\/p>\n<p>Sql \u043b\u044e\u0431\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0440\u0435\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438: <code>linkAnd(), linkOr(), getRaw()<\/code>. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">\/\/ sql: curse = 1 and (old &lt; 18 or old &gt; 50)    $wh-&gt;linkAnd([     ['curse', '=', 1],     $wh-&gt;linkOr([  ['old', '&lt;', 18], ['old', '&gt;', 50]  ])-&gt;getRaw() ]);<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043a\u043b\u0430\u0441\u0441\u0435 Where \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0441\u044b\u0440\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u041c\u0435\u0442\u043e\u0434\u044b <code>linkAnd()<\/code> \u0438 <code>linkOr()<\/code> \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u044d\u0442\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u044b \u0432\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u0432 \u0434\u0440\u0443\u0433\u0430 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441 \u0441\u044b\u0440\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<h2 id=\"join\">\u041a\u043b\u0430\u0441\u0441 JOIN<\/h2>\n<p>  <\/p>\n<p><strong>Join<\/strong>\u00a0&#8212; \u044d\u0442\u043e \u043a\u043b\u0430\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 join \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 sql \u043a\u043e\u0434\u0430. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 \u0447\u0435\u0440\u0435\u0437 \u0444\u0430\u0431\u0440\u0438\u043a\u0443: <code>$jn = GP::leftJoin('coursework', 'student_id', 's.id')<\/code>, \u0433\u0434\u0435:<\/p>\n<p>  <\/p>\n<ul>\n<li><strong>coursework<\/strong> \u2013 \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0443\u0434\u0435\u043c join\u2019\u0438\u0442\u044c.<\/li>\n<li><strong>student_id<\/strong> \u2013 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b <strong>coursework<\/strong>.<\/li>\n<li><strong>s.id<\/strong> \u2013 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 join\u2019\u0438\u043c, \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u043e\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u2013 s).<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 sql: <code>left JOIN coursework coursework_joM9YuTTfW ON coursework_joM9YuTTfW.student_id = s.id<\/code><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u043c\u044b \u0443\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446, \u043d\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u0435. \u0424\u0443\u043d\u043a\u0446\u0438\u0438 <strong>linkAnd\/linkOr<\/strong> \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c: <code>$jn-&gt;linkAnd(['semester_number', '&gt;', 2])<\/code><\/p>\n<p>  <\/p>\n<p>\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 sql: <code>inner JOIN coursework coursework_Nd1n5T7c0r ON coursework_Nd1n5T7c0r.student_id = s.id and (semester_number &gt; :al_where_M1kEcHzZyy)<\/code><\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0432 \u043a\u043b\u0430\u0441\u0441\u0435: <strong>CollectionJoin<\/strong>. <\/p>\n<p>  <\/p>\n<h2 id=\"query\">\u041a\u043b\u0430\u0441\u0441 Query<\/h2>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043b\u0430\u0441\u0441, \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0411\u0414, \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u044b\u0431\u043e\u0440\u043a\u0430, \u0437\u0430\u043f\u0438\u0441\u044c, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0438\u0437 \u0411\u0414.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. <\/p>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 \u0447\u0435\u0440\u0435\u0437 \u0444\u0430\u0431\u0440\u0438\u043a\u0443: <code>$qr = GP::query();<\/code><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0434\u0430\u0434\u0438\u043c sql \u0448\u0430\u0431\u043b\u043e\u043d, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0432 sql \u0448\u0430\u0431\u043b\u043e\u043d \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0441\u043a\u0430\u0436\u0435\u043c, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u0437\u0430\u043f\u0438\u0441\u044c, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 <strong>average_mark<\/strong>.<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">$rez = $qr-&gt;sql(&quot;select \/*select*\/                  from student s                  inner join mark m on s.id = m.student_id                  inner join lesson l on l.id = m.lesson_id                  \/*where*\/                  \/*group*\/&quot;)           -&gt;sqlPart('\/*select*\/', 's.name, avg(m.mark) average_mark', [])           -&gt;whereAnd('\/*where*\/', ['s.id', '=', 1])           -&gt;sqlPart('\/*group*\/', 'group by s.name', [])           -&gt;one('average_mark');<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: <code>3,16666666666666666666666666666666666667<\/code><\/p>\n<p>  <\/p>\n<h3 id=\"selection\">\u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u0438\u0437 \u0411\u0414 \u0441 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438<\/h3>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043c\u043d\u0435 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u043e\u043c \u0432\u0438\u0434\u0435, \u0441 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 GP \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u043f\u0440\u0438\u0447\u0435\u043c \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430. \u0414\u043b\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u0442\u0430\u043a\u0443\u044e\u00a0<strong>\u0441\u0445\u0435\u043c\u0443 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445:<\/strong><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tt\/ih\/_o\/ttih_oflaq8cvslm1yiutxabp8q.png\"\/><\/p>\n<p>  <\/p>\n<p><strong>C\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u0430\u0431\u043b\u0438\u0446:<\/strong><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/z4\/v4\/aa\/z4v4aa7oci4w-9q7nrncht1tceu.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u043a \u0411\u0414 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435 \u043f\u043b\u043e\u0441\u043a\u0438\u0439 \u043e\u0442\u0432\u0435\u0442, \u0430 \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u044b\u0439. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<p>  <\/p>\n<pre><code class=\"sql\">SELECT s.id, s.name, c.id title_id, c.title FROM student s INNER JOIN coursework c ON c. student_id = s.id WHERE s.id = 3<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u043b\u043e\u0441\u043a\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">[     0 =&gt; [         'id' =&gt; 3,         'name' =&gt; '\u041f\u0430\u0448\u0430',         'title_id' =&gt; 6,         'title' =&gt; '\u00ab\u0410\u0437\u044b\u00bb \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b',     ],     1=&gt; [         'id' =&gt; 3,         'name' =&gt; '\u041f\u0430\u0448\u0430',         'title_id' =&gt; 7,         'title' =&gt; '\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442'     ] ]<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GP \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">[     3 =&gt; [         'name' =&gt; '\u041f\u0430\u0448\u0430',         'courseworks' =&gt; [             6 =&gt; ['title' =&gt; '\u00ab\u0410\u0437\u044b\u00bb \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b'],             7 =&gt; ['title' =&gt; '\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442']         ]     ] ]<\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>all<\/code> (\u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430) \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u043e\u043f\u0446\u0438\u044f\u043c\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">all([     'id'=&gt; 'pk',     'name' =&gt; 'name',     'courseworks' =&gt; [         'title_id' =&gt; 'pk',         'title' =&gt; 'title'     ] ])<\/code><\/pre>\n<p>  <\/p>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432 <code>$option<\/code> \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 <strong>aggregator(<code>$option<\/code>, $rawData)<\/strong> \u0438 <strong>all(<code>$options<\/code>)<\/strong> \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:<\/p>\n<p>  <\/p>\n<ul>\n<li><strong>\u041a\u043b\u044e\u0447\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430<\/strong> \u2013 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u043e\u043d\u043e\u043a. <strong>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430<\/strong> \u2013 \u043d\u043e\u0432\u044b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u043c\u043e\u0436\u043d\u043e \u0432\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435.<\/li>\n<li>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u2013\u00a0<code>pk<\/code>. \u041e\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u044d\u0442\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 (\u043a\u043b\u044e\u0447 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u2014 \u044d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438). <\/li>\n<li>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d\u00a0<code>pk<\/code>. <\/li>\n<li>\u0412 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c (\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u043c) \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0439 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043a\u043e\u043b\u043e\u043d\u043a\u0438, \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u043e\u0439\u00a0<code>pk<\/code>.<\/li>\n<li>\u0415\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0438\u0436\u0435, \u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u043e\u0435, \u0432\u044b\u0434\u0443\u043c\u0430\u043d\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432, \u0441\u0442\u0440\u043e\u044f\u0449\u0438\u0439\u0441\u044f \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0448\u0435.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0441\u0435\u0445 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u0445 \u043a\u0443\u0440\u0441\u043e\u0432\u044b\u0445 \u0438 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043e\u0446\u0435\u043d\u043a\u0430\u043c\u0438 \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u0430\u043c. \u041c\u044b \u0431\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0435 \u0432 \u043f\u043b\u043e\u0441\u043a\u043e\u043c \u0432\u0438\u0434\u0435, \u0430 \u0432 \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u043e\u043c, \u0431\u0435\u0437 \u0434\u0443\u0431\u043b\u0435\u0439. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043d\u0443\u0436\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0411\u0414 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<p>  <\/p>\n<pre><code class=\"sql\">SELECT  s.id student_id, s.name student_name, s.semester_number,         c.id coursework_id, c.semester_number coursework_semester, c.title coursework_title,         l.id lesson_id, l.name lesson, m.id mark_id, m.mark FROM student s LEFT JOIN coursework c ON c.student_id = s.id LEFT JOIN mark m ON m.student_id = s.id LEFT JOIN lesson l ON l.id = m.lesson_id ORDER BY  s.id, c.id, l.id, m.id<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/er\/mj\/7p\/ermj7p5zki1g4hfxausavajfcps.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 <code>$option<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">$option = [     'student_id' =&gt; 'pk',     'student_name' =&gt; 'name',     'courseworks' =&gt; [         'coursework_semester' =&gt; 'pk',         'coursework_title' =&gt; 'title'     ],     'lessons' =&gt; [         'lesson_id' =&gt; 'pk',         'lesson' =&gt; 'lesson',         'marks' =&gt; [             'mark_id' =&gt; 'pk',             'mark' =&gt; 'mark'         ]     ] ];<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u043f\u0440\u043e\u0441 \u043a \u0411\u0414:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">\/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u043a\u043b\u0430\u0441\u0441\u043e\u0432 Query \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0430\u0431\u0440\u0438\u043a\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0423\u0421\u0422\u0410\u041d\u041e\u0412\u041a\u0410 \/\/ (\u0437\u0434\u0435\u0441\u044c \u0441\u043b\u0443\u0447\u0430\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0434\u043b\u044f yii2) $qr = Yii::$app-&gt;gp-&gt;query( &quot;SELECT  s.id student_id, s.name student_name, s.semester_number,                c.id coursework_id, c.semester_number coursework_semester,                c.title coursework_title, l.id lesson_id, l.name lesson,                m.id mark_id, m.mark FROM student s LEFT JOIN coursework c ON c.student_id = s.id LEFT JOIN mark m ON m.student_id = s.id LEFT JOIN lesson l ON l.id = m.lesson_id ORDER BY  s.id, c.id, l.id, m.id&quot;);  \/\/ \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 1, \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 2 \u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 3 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435  \/\/ \u0432\u0430\u0440\u0438\u0430\u043d\u0442 1 $result = $qr-&gt;all($option);  \/\/ \u0432\u0430\u0440\u0438\u0430\u043d\u0442 2 $result = $qr-&gt;aggregator($option, $qr-&gt;all());  \/\/ \u0432\u0430\u0440\u0438\u0430\u043d\u0442 3 $qr-&gt;all(); $result = $qr-&gt;aggregator($option, $qr-&gt;rawData());<\/code><\/pre>\n<p>  <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>aggregator<\/code> \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0441\u0445\u043e\u0436\u0435\u0439 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0411\u0414, \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0432 <code>$option<\/code>.<\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>$result<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">[     1 =&gt; [         'name' =&gt; '\u0414\u0430\u0448\u0430',         'courseworks' =&gt; [             1 =&gt; ['title' =&gt; '\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u0426\u041f'],         ],         'lessons' =&gt; [             1 =&gt; [                 'lesson' =&gt; '\u041a\u043e\u041c\u043e\u0434',                 'marks' =&gt; [                     1 =&gt; ['mark' =&gt; 3],                     2 =&gt; ['mark' =&gt; 4]                 ]             ],             2 =&gt; [                 'lesson' =&gt; '\u041c\u0430\u0442\u0430\u043d',                 'marks' =&gt; [                     3 =&gt; ['mark' =&gt; 2],                     4 =&gt; ['mark' =&gt; 2],                     5 =&gt; ['mark' =&gt; 3]                 ]             ],             4 =&gt; [                 'lesson' =&gt; '\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u044f',                 'marks' =&gt; [                     6 =&gt; ['mark' =&gt; 5]                 ]             ]         ]     ],     3 =&gt; [         'name' =&gt; '\u041f\u0430\u0448\u0430',         'courseworks' =&gt; [             1 =&gt; ['title' =&gt; '\u00ab\u0410\u0437\u044b\u00bb \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b'],             2 =&gt; ['title' =&gt; '\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430']         ],         'lessons' =&gt; [             1 =&gt; [                 'lesson' =&gt; '\u041a\u043e\u041c\u043e\u0434',                 'marks' =&gt; [                     17 =&gt; ['mark' =&gt; 5]                 ]             ],              2 =&gt; [                 'lesson' =&gt; '\u041c\u0430\u0442\u0430\u043d',                 'marks' =&gt; [                     18 =&gt; ['mark' =&gt; 2]                 ]             ],             3 =&gt; [                 'lesson' =&gt; '\u0424\u0438\u0437-\u0440\u0430',                 'marks' =&gt; [                     20 =&gt; ['mark' =&gt; 4]                 ]             ],             4 =&gt; [                 'lesson' =&gt; '\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u044f',                 'marks' =&gt; [                     16 =&gt; ['mark' =&gt; 2],                     19 =&gt; ['mark' =&gt; 3]                 ]             ],          ]     ] ]<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a \u0441\u043b\u043e\u0432\u0443, \u043f\u0440\u0438 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438 \u0441 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0445\u043d\u0438\u0435, \u0441\u0430\u043c\u044b\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0434\u043b\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e 2 \u0441\u0442\u0440\u043e\u0447\u043a\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"union\">\u041c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u0441\u0430\u043c\u0438\u043c \u0441\u043e\u0431\u043e\u0439 \u0432\u043e \u0438\u043c\u044f \u043f\u043e\u0438\u0441\u043a\u0430<\/h2>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b \u0440\u0430\u043d\u0435\u0435, \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043c\u043e\u0435\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u2013 \u044d\u0442\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e where \u0447\u0430\u0441\u0442\u0438 \u0434\u043b\u044f select \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u0422\u0430\u043a \u0432 \u043a\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e join\u2019\u043d\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0434\u043b\u044f where \u0437\u0430\u043f\u0440\u043e\u0441\u0430? \u041e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u044d\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u0442\u043e\u0432\u0430\u0440, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u0438 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u0430 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0442\u043e\u0432\u0430\u0440\u044b \u043f\u043e \u044d\u0442\u0438\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c. \u041f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043d\u0430 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<p>  <\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043c\u0430\u0433\u0430\u0437\u0438\u043d, \u043f\u0440\u043e\u0434\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0443\u044e\u0449\u0438\u0435, \u043f\u0440\u0438\u0447\u0435\u043c \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442 \u0441\u0442\u0440\u043e\u0433\u043e\u0433\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430 \u0438 \u043c\u044b \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043a\u0443\u043f\u0430\u0442\u044c \u0442\u043e \u043e\u0434\u043d\u0438 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0443\u044e\u0449\u0438\u0435, \u0442\u043e \u0434\u0440\u0443\u0433\u0438\u0435. \u041d\u043e \u043c\u044b \u0431\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0442\u043e\u0432\u0430\u0440\u044b \u0435\u0434\u0438\u043d\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0432\u0441\u0435\u043c \u0442\u043e\u0432\u0430\u0440\u0430\u043c. \u0418\u0442\u0430\u043a, \u043a\u0430\u043a\u0438\u0435 \u0436\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0438:<\/p>\n<p>  <\/p>\n<ol>\n<li><strong>\u0422\u043e\u0432\u0430\u0440.<\/strong> \u0421\u0430\u043c\u0430\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c, \u0432\u043e\u043a\u0440\u0443\u0433 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f.<\/li>\n<li><strong>\u0422\u0438\u043f \u0442\u043e\u0432\u0430\u0440\u0430.<\/strong> \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0442\u043e\u0432\u0430\u0440\u0430. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0432 \u043d\u0430\u0448\u0435\u043c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u043c \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 \u044d\u0442\u043e \u043f\u043e\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e: \u041e\u0417\u0423, SSD \u0438 HDD.<\/li>\n<li><strong>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0442\u043e\u0432\u0430\u0440\u0430.<\/strong> \u0412 \u043d\u0430\u0448\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a \u043b\u044e\u0431\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u0442\u043e\u0432\u0430\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u0432\u044b\u0431\u043e\u0440 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043e\u0432\u0435\u0441\u0442\u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430. \u0412 \u043d\u0430\u0448\u0435\u043c \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u0432\u043d\u0435\u0441\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e 3 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430: \u043e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438, \u0444\u043e\u0440\u043c-\u0444\u0430\u043a\u0442\u043e\u0440 \u0438 DDR. <\/li>\n<li><strong>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0430.<\/strong> \u0422\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0431\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435.<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u0412\u0441\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0432\u044b\u0448\u0435 \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0441\u043d\u0438\u0437\u0443. <\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/z1\/gx\/um\/z1gxum4ba1zhvsilqqdqijndt94.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u043e\u0432\u0430\u0440: <strong>\u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c DDR 3 \u043d\u0430 16 \u0413\u0431<\/strong>. \u041d\u0430 \u0441\u0445\u0435\u043c\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kz\/lp\/-x\/kzlp-xtvozjhyffgboxtbqr7qri.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0411\u0414 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0432\u0438\u0434\u043d\u044b \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/es\/lk\/8a\/eslk8aungbzzjqtpjnejscp6ywk.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0438\u0437 \u0441\u0445\u0435\u043c\u044b \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 <strong>val<\/strong> (\u043a \u0441\u043b\u043e\u0432\u0443, \u0432 \u043d\u0430\u0448\u0435\u043c \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435). \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u0441\u043e \u0441\u0432\u044f\u0437\u043a\u043e\u0439 AND, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0443\u0441\u0442\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0443. <\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c \u0438\u0449\u0435\u0442 \u0442\u043e\u0432\u0430\u0440\u044b \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u043e\u0434 \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441: <em>\u043e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 10 \u0413\u0431 \u0438 \u0444\u043e\u0440\u043c \u0444\u0430\u043a\u0442\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c 2.5 \u0434\u044e\u0439\u043c\u0430<\/em>. \u0415\u0441\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c sql \u0442\u0430\u043a, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0443\u0441\u0442\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"sql\">select * from product p inner join val v on v.product_id = p.id where (v.property_id = 1 and v.value &gt; 10) AND       (v.property_id = 3 and v.value = 2.5) <\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e join\u2019\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 val \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0438\u0441\u043a. \u041d\u043e \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441, join \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u00ab\u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438\u00bb (\u043a \u0441\u043b\u043e\u0432\u0443 union all \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u00ab\u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438\u00bb), \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/00\/th\/4d\/00th4d4mehwetkemk7vnkvqukr4.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442, \u043c\u044b \u0431\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e join\u2019\u043d\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 val \u043d\u0430 1 \u0440\u0430\u0437 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0438\u0441\u043a.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pp\/br\/rp\/ppbrrphdkttykoq0uexraglkcve.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0443\u0436\u0435 \u0431\u043b\u0438\u0437\u043a\u0438 \u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 sql \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e<br \/>  <code>whereWithJoin ($aliasJoin, $options, $aliasWhere, $where)<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443: <\/p>\n<p>  <\/p>\n<ul>\n<li><strong>$aliasJoin<\/strong>\u00a0&#8212; \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u0432 \u0431\u0430\u0437\u043e\u0432\u043e\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f sql \u0447\u0430\u0441\u0442\u044c \u0441 join\u2019\u0430\u043c\u0438.<\/li>\n<li><strong>$options<\/strong>\u00a0&#8212; \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c\u0438 \u043f\u0440\u0430\u0432\u0438\u043b \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 join \u0447\u0430\u0441\u0442\u0438.<\/li>\n<li><strong>$aliasWhere<\/strong>\u00a0&#8212; \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u0432 \u0431\u0430\u0437\u043e\u0432\u043e\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f where sql \u0447\u0430\u0441\u0442\u044c.<\/li>\n<li><strong>$where<\/strong>\u00a0&#8212; \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 Where.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435: <code>whereWithJoin('\/*join*\/', $options, '\/*where*\/', $wh)<\/code>. <\/p>\n<p>  <\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <strong>$options<\/strong>: <code>$options = ['v' =&gt; ['val', 'product_id', 'p.id']];<\/code><\/p>\n<p>  <\/p>\n<p><strong>v<\/strong>\u00a0\u2013 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0415\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u0441\u044f \u0432\u00a0<strong>$wh<\/strong>, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 join\u2019\u043e\u043c \u043d\u043e\u0432\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u00a0<strong>val<\/strong>\u00a0(\u0433\u0434\u0435\u00a0<strong>product_id<\/strong> &#8212;\u00a0\u044d\u0442\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043b\u044e\u0447 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0<strong>val<\/strong>, \u0430\u00a0<strong>p.id<\/strong>\u00a0&#8212; \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0434\u043b\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u043e\u043c\u00a0<strong>p<\/strong>), \u0434\u043b\u044f \u043d\u0435\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u043e\u0432\u044b\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u0438 \u044d\u0442\u043e\u0442 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u00a0<strong>v<\/strong> \u0432 where.<\/p>\n<p>  <\/p>\n<p><strong>$wh<\/strong> \u2013 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 Where. \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0432\u0441\u0435 \u0442\u043e\u0442 \u0436\u0435 \u0437\u0430\u043f\u0440\u043e\u0441: <em>\u043e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 10 \u0413\u0431 \u0438 \u0444\u043e\u0440\u043c \u0444\u0430\u043a\u0442\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c 2.5 \u0434\u044e\u0439\u043c\u0430.<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"php\">$wh-&gt;linkAnd([     $wh-&gt;linkAnd([ ['v.property_id', '=', 1], ['v.value', '&gt;', 10] ])-&gt;getRaw(), \/\/ \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0432 \u0441\u043a\u043e\u0431\u043a\u0443     $wh-&gt;linkAnd([ ['v.property_id', '=', 3], ['v.value', '=', 2.5] ])-&gt;getRaw(),\/\/ \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0432 \u0441\u043a\u043e\u0431\u043a\u0443 ]);<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 where \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0432 \u0441\u043a\u043e\u0431\u043a\u0438 \u0447\u0430\u0441\u0442\u044c \u0441 id \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0438 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c, \u044d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>whereWithJoin()<\/code>, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439.<\/p>\n<p>  <\/p>\n<pre><code class=\"php\">$qr-&gt;sql(&quot;select p.id, t.name type_name, pr.id prop_id, pr.name prop_name, v.id val_id, v.value            from product p           inner join type t on t.id = p.type_id           inner join val v on v.product_id = p.id           inner join properties pr on pr.id = v.property_id           \/*join*\/           \/*where*\/&quot;)    -&gt;whereWithJoin('\/*join*\/', $options, '\/*where*\/', $wh)    \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0441\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.    -&gt;all([       'id' =&gt; 'pk',       'type_name' =&gt; 'type',       'properties' =&gt; [           'prop_id' =&gt; 'pk',           'prop_name' =&gt; 'name',           'values' =&gt; [               'val_id' =&gt; 'pk',               'value' =&gt; 'val'           ]       ]    ]);<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 sql, \u0431\u0438\u043d\u0434\u044b \u0438 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430: <code>$qr-&gt;debugInfo()<\/code>: <\/p>\n<p>  <\/p>\n<pre><code class=\"php\">[     [         'type' =&gt; 'info',         'sql' =&gt; 'select p.id, t.name type_name, pr.id prop_id, pr.name prop_name, v.id val_id, v.value                    from product p                   inner join type t on t.id = p.type_id                   inner join val v on v.product_id = p.id                   inner join properties pr on pr.id = v.property_id                   inner JOIN val val_mIQWpnHhdQ ON  val_mIQWpnHhdQ.product_id  =  p.id                   inner JOIN val val_J0uveMpwEM ON  val_J0uveMpwEM.product_id  =  p.id                   WHERE  ( val_mIQWpnHhdQ.property_id  =  :al_where_leV5QlmOZN  and  val_mIQWpnHhdQ.value  &gt;  :al_where_ycleYAswIw )                       and  ( val_J0uveMpwEM.property_id  =  :al_where_dinxDraTOE  and  val_J0uveMpwEM.value  =  :al_where_wZJhUqs74i )',         'binds' =&gt; [             'al_where_leV5QlmOZN' =&gt; 1,             'al_where_ycleYAswIw' =&gt; 10,             'al_where_dinxDraTOE' =&gt; 3,             'al_where_wZJhUqs74i' =&gt; 2.5         ],         'timeQuery' =&gt; 0.0384588241577     ] ]<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0438\u0437 \u0411\u0414 <code>$qr-&gt;rawData()<\/code>: <\/p>\n<p>  <\/p>\n<pre><code class=\"php\">[     [         'id' =&gt; 3,         'type_name' =&gt; 'SSD',         'prop_id' =&gt; 1,         'prop_name' =&gt; '\u041e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438',         'val_id' =&gt; 5,         'value' =&gt; 512     ],     [         'id' =&gt; 3,         'type_name' =&gt; 'SSD',         'prop_id' =&gt; 3,         'prop_name' =&gt; '\u0424\u043e\u0440\u043c-\u0444\u0430\u043a\u0442\u043e\u0440',         'val_id' =&gt; 6,         'value' =&gt; 2.5     ],     [         'id' =&gt; 4,         'type_name' =&gt; 'SSD',         'prop_id' =&gt; 1,         'prop_name' =&gt; '\u041e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438',         'val_id' =&gt; 7,         'value' =&gt; 256     ],     [         'id' =&gt; 4,         'type_name' =&gt; 'SSD',         'prop_id' =&gt; 3,         'prop_name' =&gt; '\u0424\u043e\u0440\u043c-\u0444\u0430\u043a\u0442\u043e\u0440',         'val_id' =&gt; 8,         'value' =&gt; 2.5     ],     [         'id' =&gt; 6,         'type_name' =&gt; 'HDD',         'prop_id' =&gt; 1,         'prop_name' =&gt; '\u041e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438',         'val_id' =&gt; 11,         'value' =&gt; 1024     ],     [         'id' =&gt; 6,         'type_name' =&gt; 'HDD',         'prop_id' =&gt; 3,         'prop_name' =&gt; '\u0424\u043e\u0440\u043c-\u0444\u0430\u043a\u0442\u043e\u0440',         'val_id' =&gt; 12,         'value' =&gt; 2.5     ] ]<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0438\u0437 \u0411\u0414 \u0432 \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u043e\u043c \u0432\u0438\u0434\u0435 <code>$qr-&gt;aggregateData()<\/code>: <\/p>\n<p>  <\/p>\n<pre><code class=\"php\">[     3 =&gt; [         'type' =&gt; 'SSD',         'properties' =&gt; [             1 =&gt; [                 'name' =&gt; '\u041e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438',                 'values' =&gt; [                     5 =&gt; ['val' =&gt; 512]                 ]             ],             3 =&gt; [                 'name' =&gt; '\u0424\u043e\u0440\u043c-\u0444\u0430\u043a\u0442\u043e\u0440',                 'values' =&gt; [                     6 =&gt; ['val' =&gt; 2.5]                 ]             ]         ]     ],     4 =&gt; [         'type' =&gt; 'SSD',         'properties' =&gt; [             1 =&gt; [                 'name' =&gt; '\u041e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438',                 'values' =&gt; [                     7 =&gt; ['val' =&gt; 256]                 ]             ],             3 =&gt; [                 'name' =&gt; '\u0424\u043e\u0440\u043c-\u0444\u0430\u043a\u0442\u043e\u0440',                 'values' =&gt; [                     8 =&gt; ['val' =&gt; 2.5]                 ]             ]         ]     ],     6 =&gt; [         'type' =&gt; 'HDD',         'properties' =&gt; [             1 =&gt; [                 'name' =&gt; '\u041e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438',                 'values' =&gt; [                     11 =&gt; ['val' =&gt; 1024]                 ]             ],             3 =&gt; [                 'name' =&gt; '\u0424\u043e\u0440\u043c-\u0444\u0430\u043a\u0442\u043e\u0440',                 'values' =&gt; [                     12 =&gt; ['val' =&gt; 2.5]                 ]             ]         ]     ] ]<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u0432\u043e\u0434\u044f \u0438\u0442\u043e\u0433 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0441\u0442\u0430\u0442\u044c\u0438, \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0440\u0435\u0448\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>whereWithJoin()<\/code>, \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u0443\u044f\u0441\u044c \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>whereWithJoin()<\/code> \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442, \u0435\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u0433\u0434\u0435 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b <strong>n<\/strong> \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e\u0442 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430 \u0432 <strong>m<\/strong> \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u0445 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u041f\u0440\u0438\u0447\u0435\u043c <strong>n<\/strong> \u0438 <strong>m<\/strong> \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442 1 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c id \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446. \u0418 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c, \u043f\u0440\u0438\u0447\u0435\u043c \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0432\u044f\u0437\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 <strong>AND<\/strong>.<\/p>\n<p>  <\/p>\n<hr\/>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0432 <a href=\"https:\/\/falbin.ru\/documentation\/greenpig\/\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a> \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u043a\u043e\u0434 \u043d\u0430 <a href=\"https:\/\/github.com\/mrFalbin\/green-pig-dao\/tree\/master\">GitHub<\/a>.<\/p>\n<\/div>\n<p>               <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d() } } }t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>      <br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/483458\/\"> https:\/\/habr.com\/ru\/post\/483458\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/483458\/\">\n<ol>\n<li><a href=\"#entry\">\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/a><\/li>\n<li><a href=\"#libraryconnection\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/a><\/li>\n<li><a href=\"#where\">\u041a\u043b\u0430\u0441\u0441 Where <\/a><br \/> \n<ul>\n<li><a href=\"#partrequest\">\u0410\u0442\u043e\u043c\u0430\u0440\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/a><\/li>\n<li><a href=\"#complicatedqueries\">\u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#join\">\u041a\u043b\u0430\u0441\u0441 Join<\/a> <\/li>\n<li><a href=\"#query\">\u041a\u043b\u0430\u0441\u0441 Query<\/a> <br \/> \n<ul>\n<li><a href=\"#selection\">\u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u0438\u0437 \u0411\u0414 \u0441 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438<\/a><\/li>\n<li><a href=\"#union\">\u041c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u0441\u0430\u043c\u0438\u043c \u0441\u043e\u0431\u043e\u0439 \u0432\u043e \u0438\u043c\u044f \u043f\u043e\u0438\u0441\u043a\u0430<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>  <\/p>\n<pre><code class=\"sql\">      \u2554\u2550\u2550\u2550\u2557\u2554\u2550\u2550\u2550\u2557\u2554\u2550\u2550\u2550\u2557\u2554\u2550\u2550\u2550\u2557\u2554\u2557\u2500\u2554\u2557\u2500\u2500\u2500\u2500\u2554\u2550\u2550\u2550\u2557\u2554\u2550\u2550\u2557\u2554\u2550\u2550\u2550\u2557       \u2551\u2554\u2550\u2550\u255d\u2551\u2554\u2550\u2557\u2551\u2551\u2554\u2550\u2550\u255d\u2551\u2554\u2550\u2550\u255d\u2551\u255a\u2550\u255d\u2551\u2500\u2500\u2500\u2500\u2551\u2554\u2550\u2557\u2551\u255a\u2557\u2554\u255d\u2551\u2554\u2550\u2550\u255d       \u2551\u2551\u2554\u2550\u2557\u2551\u255a\u2550\u255d\u2551\u2551\u255a\u2550\u2550\u2557\u2551\u255a\u2550\u2550\u2557\u2551\u2554\u2557\u2500\u2551\u2500\u2500\u2500\u2500\u2551\u255a\u2550\u255d\u2551\u2500\u2551\u2551\u2500\u2551\u2551\u2554\u2550\u2557       \u2551\u2551\u255a\u2557\u2551\u2551\u2554\u2557\u2554\u255d\u2551\u2554\u2550\u2550\u255d\u2551\u2554\u2550\u2550\u255d\u2551\u2551\u255a\u2557\u2551\u2500\u2500\u2500\u2500\u2551\u2554\u2550\u2550\u255d\u2500\u2551\u2551\u2500\u2551\u2551\u255a\u2557\u2551       \u2551\u255a\u2550\u255d\u2551\u2551\u2551\u2551\u2551\u2500\u2551\u255a\u2550\u2550\u2557\u2551\u255a\u2550\u2550\u2557\u2551\u2551\u2500\u2551\u2551\u2500\u2500\u2500\u2500\u2551\u2551\u2500\u2500\u2500\u2554\u255d\u255a\u2557\u2551\u255a\u2550\u255d\u2551       \u255a\u2550\u2550\u2550\u255d\u255a\u255d\u255a\u255d\u2500\u255a\u2550\u2550\u2550\u255d\u255a\u2550\u2550\u2550\u255d\u255a\u255d\u2500\u255a\u255d\u2500\u2500\u2500\u2500\u255a\u255d\u2500\u2500\u2500\u255a\u2550\u2550\u255d\u255a\u2550\u2550\u2550\u255d                              5HHHG                  HH       HHHHHHH                9HHHA    HHHHHHHH5               HHHHHHHHHHHHHHHHHH  9HHHHH5             5HHHHHHHHHHHHHHHHHHHHHHHHHHH            HHHHHHHHHHHHHHHHHHHHHHHHHHHH          ;HHHHHHHHHHHHHHHHHHHHHHHHHHA           H2   HHHHHHHHHHHHHHHHHHHHHH                HHHHHHHHHHHHHHHHHHHHHHH9                 HHHHHHHHHHHHHHHHHHHHHHH                 AHHHHHHHHHHHHHHHHHHHHHH                  HHHHHHHHHHHHHHHHHHHHH9  iHS                   HHHHHHHHHHHHHHHHHHHHHHhh                    HHHHHHHHHHHHHHHHHH                   AA HHHHHHHHHHHHHH3                  &amp;H  Hi         HS Hr                  &amp;  H&amp;          H&amp;  Hi<\/code><\/pre>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-296959","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/296959","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=296959"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/296959\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=296959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=296959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=296959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}