8

別のテーブルの ID を参照する 2 つのフィールドを持つテーブルがあります。両方のフィールドの名前を他のテーブルから取得する必要があります。

例えば。

 
表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['???'];

2 つの名前を取得するには、最後の 2 つのステートメントに何を挿入すればよいでしょうか。または、より正確には、テーブル 2 の NAME フィールドの 2 つの異なるバージョンを呼び出すものを指定するために、SELECT に何を追加する必要がありますか?

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 に答える