8

我有一个表,其中有两个字段引用另一个表的 ID。我需要从另一个表中提取两个字段的名称。

例如。

 
表格1
worker1 = 2(2 是其他表的键)
工人2 = 4

表2 身份证名称 1 比尔 2弗雷德 3约翰 4 保罗

我需要得到 $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 中添加什么来指定我希望调用表 2 中两个不同版本的 NAME 字段?

4

1 回答 1

19

您也应该像这样给字段起别名:

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 ...
于 2013-10-23T08:39:05.067 回答