Mysql несколько левых соединений в одной таблице

у меня есть таблица с двумя полями, которые ссылаются на ID другой таблицы. Мне нужно вытащить имя из другой таблицы для обоих полей.

например.

 
Table1
worker1 = 2  (2 is key to other table)
worker2 = 4

Table2 ID NAME 1 Bill 2 Fred 3 John 4 Paul

мне нужно получить $worker1name = Fred и $worker2name = Paul.

поэтому я буду говорить что-то вроде:

SELECT xxx, NAME?, NAME? FROM Table1
LEFT JOIN Table2 AS p1 ON Table1.worker1 = Table2.ID
LEFT JOIN Table2 AS p2 ON Table1.worker2 = Table2.ID
WHERE ...

$table = mysql_query(...);
$rec = mysql_fetch_assoc($table);
$worker1name = $rec['???'];
$worker2name = $rec['???'];

что я вставляю в эти последние два оператора, чтобы получить два имени. Или, точнее, что я должен добавить в SELECT, чтобы указать, что я хочу, чтобы два разных версии поля NAME из таблицы 2, которые нужно вызвать, пожалуйста?

2 ответов


вы должны псевдонимы полей также так:

SELECT
   xxx,
   p1.NAME as p1name,
   p2.NAME as p2name
FROM Table1
LEFT JOIN Table2 AS p1 ON Table1.worker1 = p1.ID
LEFT JOIN Table2 AS p2 ON Table1.worker2 = p2.ID
WHERE ...

SELECT xxx, p1.NAME AS p1Name, p2.NAME AS p2Name FROM Table1


$worker1name = $rec['p1Name'];
$worker2name = $rec['p2Name'];