@FraudCrew

Объеденить SQL 3 запроса в 1 массив

Сабж, есть вот такие 3 запроса:
$q1=mysql_query("SELECT id,price,group_id,name,description FROM `product` LIMIT 0, 200");
$q2=mysql_query("SELECT id,parent_id,name FROM `product_group` LIMIT 0, 200");
$q3=mysql_query("SELECT file FROM `product_image` ORDER BY `product_image`.`product_id` ASC LIMIT 0, 200");

Как объеденить в 1 массив, что-бы можно было выводить данные из него в рамках одного цикла?
Игрался с UNION ничего не выходит.
  • Вопрос задан
  • 2545 просмотров
Решения вопроса 1
disc
@disc
веб-разработчик
select p.*, p_g.*, p_i.*
from `product` p
left join `product_group` p_g ON p_g.id = p.group_id
left join `product_image` p_i ON p_i.product_id = p.id
ORDER BY p_i.`product_id` ASC
LIMIT 0, 200


Вот такой запрос позволит получить все данные одним запросом в один массив.
В SELECT перечислите нужные поля, чтобы не было overhead
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
AMar4enko
@AMar4enko
Интересно, что ваш цикл, в таком случае, будет делать.
Ответ написан
Комментировать
disc
@disc
веб-разработчик
Данные из product_group и product_image таблиц будет вытаскиваться для продуктов из первого запроса или нет?
Если да, то вам тут нужно использовать 2 JOIN'a.
Ответ написан
Комментировать
@FraudCrew Автор вопроса
@disc
@AMar4enko
Дальше на основе этих данных, я собираюсь наполнять xml

$ymlcontent.="<offer id=\"".$row['id']."\" available=\"true\">\n";
                        $ymlcontent.="<url>http://www.site.ru/product/view/id/".$row['id']."</url>\n";
                        $ymlcontent.="<price>".$row['price']."</price>\n";
                        $ymlcontent.="<currencyId>RUR</currencyId>\n";
                        $ymlcontent.="<categoryId>".$row['group_id']."</categoryId>\n";

php изучать только начал, многих вещей еще не понимаю.
В том числе как быть, если есть столбец id в двух таблицах, как его потом вызывать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы