выбрать данные дважды из одной таблицы в одном запросе

xbs

Новичок
выбрать данные дважды из одной таблицы в одном запросе

Добрый день.

Имею запрос на выборку даных из таблицы virtual_articles, склеивая ее с таблицей users дважды по разным атрибутам

SELECT * FROM virtual_articles
LEFT JOIN users AS purchasers ON purchasers.u_id = va_purchaser_u_id
LEFT JOIN users AS owners ON owners.u_id = va_owner_u_id;

Каким образом можно забрать из ассоциативной строки результата данные для 2х разных пользователей?

***********

Структура выборки и инициализации объектов такая, где $row - ассоциативный массив "название поля в БД" => "значение":

$query = "SELECT ... ";
$res = mysqli_query($db, $query);
$row = mysqli_fetch_assoc($res);
$purchaser = new User(0, $row);
$owner = new User(0, $row);

нужно каким-то образом различать данные в $row для выборки из таблицы users AS purchasers и из таблицы users AS owners.
 

x-yuri

Новичок
есть 2 варианта: 1) использовать alias'ы в запросе, 2) mysql_fetch_row. Если бы ты внимательно читал мануал ты бы их знал. Обычно первый вариант - лучше

p.s. думаю, в данном случае можно и 2 запроса выполнить
 

xbs

Новичок
Не мог бы ты привести пример запроса, я не смог найти в мануале решение.

Ты предлагаешь каждому полю выборки давать алиас или как?
 

x-yuri

Новичок
Ты предлагаешь каждому полю выборки давать алиас или как?
или получать данные каждого пользователя отдельным запросом. Я бы использовал один запрос, если бы несколько запросов были узким местом, т.е. если бы они заметно тормозили генерацию странички

-~{}~ 07.02.09 14:19:

ссылку на мануал исправил, там описаны те 2 варианта, о которых я тебе говорил
 

xbs

Новичок
Спасибо. Эти 2 способа я знаю, но думал найти более элегантное решение для выборки одним селектом.
Выбрал 2ой способ, как более универсальный.
 
Сверху