<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; Join запросы]]></title>
		<link>http://forum.readyscript.ru/topic/1640/join-zaprosy/</link>
		<atom:link href="http://forum.readyscript.ru/feed/rss/topic/1640/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Join запросы».]]></description>
		<lastBuildDate>Thu, 23 Aug 2018 20:21:31 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Join запросы]]></title>
			<link>http://forum.readyscript.ru/post/9057/#p9057</link>
			<description><![CDATA[<div class="codebox"><pre><code>-&gt;where(&#039;Нужная строка&#039;)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 23 Aug 2018 20:21:31 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/9057/#p9057</guid>
		</item>
		<item>
			<title><![CDATA[Re: Join запросы]]></title>
			<link>http://forum.readyscript.ru/post/9052/#p9052</link>
			<description><![CDATA[<p>Снова столкнулся с проблемой, как реализовать запрос типа:<br /></p><div class="codebox"><pre><code>SELECT * FROM `homestead`.`iqay_product` WHERE `maindir` NOT IN (&#039;3&#039;,&#039;4&#039;,&#039;6&#039;,&#039;7&#039;,&#039;24&#039;,&#039;25&#039;)</code></pre></div><p>Как добавить NOT используя ORM ? <br /></p><div class="codebox"><pre><code>\RS\Orm\Request::make()
            -&gt;from(new Product)
            -&gt;whereIn(&#039;maindir&#039;, $ids)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Айрат)]]></author>
			<pubDate>Mon, 20 Aug 2018 12:25:47 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/9052/#p9052</guid>
		</item>
		<item>
			<title><![CDATA[Re: Join запросы]]></title>
			<link>http://forum.readyscript.ru/post/9038/#p9038</link>
			<description><![CDATA[<p>Точно, я же селект первым не указал. А поля одинаковые. Спасибо,&nbsp; Александр!</p>]]></description>
			<author><![CDATA[null@example.com (Айрат)]]></author>
			<pubDate>Fri, 17 Aug 2018 06:23:04 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/9038/#p9038</guid>
		</item>
		<item>
			<title><![CDATA[Re: Join запросы]]></title>
			<link>http://forum.readyscript.ru/post/9035/#p9035</link>
			<description><![CDATA[<p>Ну так правильно,&nbsp; Вас же получается несколько одинаковых полей в таблице которые вы записываете в объект. Вы же выборку делаете полей товара и категории. И т.к. таблица категории прибавляется после товара, то и в объект попадает последняя. Т.е. у Вас в SELECT нужно указать нужные поля только из товара.</p><p>Я думаю примерно так:</p><div class="codebox"><pre><code> $products = \RS\Orm\Request::make()
           -&gt;select(&#039;P.*&#039;)
            -&gt;from(new \Catalog\Model\Orm\Product, &#039;P&#039;)
            -&gt;join(new \Catalog\Model\Orm\Dir, &#039;Dir.id = P.maindir&#039;, &#039;Dir&#039;)
            -&gt;join(new \Catalog\Model\Orm\Xdir(), &#039;Xdir.product_id = P.id&#039;, &#039;Xdir&#039; )
            -&gt;where([&#039;P.maindir&#039; =&gt; $current_dir-&gt;id])
            -&gt;where([&#039;Xdir.dir_id&#039; =&gt; $specdir_id])-&gt;object();</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 16 Aug 2018 15:32:57 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/9035/#p9035</guid>
		</item>
		<item>
			<title><![CDATA[Join запросы]]></title>
			<link>http://forum.readyscript.ru/post/9030/#p9030</link>
			<description><![CDATA[<p>Здравсвуйте! Столкнулся со следующей проблемой:</p><p>Начал писать блок контроллер, который получает все товары из категории, имеющие также определенную спецкатегорию, в которой находится пользователь. Надеюсь, нормально объяснил.</p><p>// $current_dir-&gt;id - id текущей директории<br />// $specdir_id - id спецкатегории</p><div class="codebox"><pre><code>        $products = \RS\Orm\Request::make()
            -&gt;from(new \Catalog\Model\Orm\Product, &#039;P&#039;)
            -&gt;join(new \Catalog\Model\Orm\Dir, &#039;Dir.id = P.maindir&#039;, &#039;Dir&#039;)
            -&gt;join(new \Catalog\Model\Orm\Xdir(), &#039;Xdir.product_id = P.id&#039;, &#039;Xdir&#039; )
            -&gt;where([&#039;P.maindir&#039; =&gt; $current_dir-&gt;id])
            -&gt;where([&#039;Xdir.dir_id&#039; =&gt; $specdir_id])-&gt;object();</code></pre></div><p>Если вывести с помощью echo, то запрос SQL будет выглядить следующим образом:<br />SELECT * FROM `homestead`.`iqay_product` as P INNER JOIN `homestead`.`iqay_product_dir` as Dir ON Dir.id = P.maindir INNER JOIN `homestead`.`iqay_product_x_dir` as Xdir ON Xdir.product_id = P.id WHERE (`P`.`maindir` = &#039;2&#039;) AND (`Xdir`.`dir_id` = &#039;26&#039;)</p><p>Запустив его в SQL я получаю в ответ 1 - 2 поля, в зависимости от спецкатегории, т.е. все происходит как надо.</p><p>Но сам запрос через ORM при получении объектов товаров, почему-то в свойство alias подставляет alias текущей категории, где вызывается блок контроллер.</p><p>Например: Категория Лазерные комплексы Raylogic 11G с алиасом lazernye-kompleksy-raylogic-11g. В нем товар, который также имеет спецкатегорию. Товар: Лазерный комплекс Raylogic (Рэйлоджик) 11G 1610 Лайт с алиасом lazernyy-kompleks-raylogic-reylodzhik-11g-1610-layt. Т.е. алиас неверны, то и ссылка строится кривая при использовании метода $product-&gt;getUrl().&nbsp; В ответ получаю <a href="http://joxi.ru/brRJzBMHJVwK4r.">http://joxi.ru/brRJzBMHJVwK4r.</a> Все смешанно</p><p>Помогите составить корректный запрос, или, возможно, есть уже встроенные методы, которые я проглядел.</p>]]></description>
			<author><![CDATA[null@example.com (Айрат)]]></author>
			<pubDate>Thu, 16 Aug 2018 09:34:18 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/9030/#p9030</guid>
		</item>
	</channel>
</rss>
