2011-02-02 4 views
3

私はジョインステートメントを作成しようとしていますが、実行中のクエリが見つかった各タイトルについて同じ情報を出力していることがわかりました。複数のフィールドにテーブルを結合する必要があるようですが、それが可能かどうかはわかりません。説明するのは少し難しいですが、下のコードは私が達成しようとしていることと実際に起こっていることを示しています...うまくいけば、誰かが私を正しい方向に向けることができますか?mysql - 複数のフィールドに参加することはできますか?

+----------------------------------------------------+ 
TABLE: NODE N 
+----------------------------------------------------+ 
nid | vid | type | language | title  | uid 
22196 | 22196 | einfo | en  | Contact 15 | 15 
22040 | 22040 | fmp | en  | John Doe | 15 
22043 | 22043 | fmp | en  | Jane Doe | 15 

+----------------------------------------------------+ 
TABLE: CONTENT_FIELD_PN P 
+----------------------------------------------------+ 
vid | nid | delta | field_name_nid 
22196 | 22196 |  0 |   22040 
22196 | 22196 |  1 |   22043 


+----------------------------------------------------+ 
TABLE: CONTENT_FIELD_PP PP 
+----------------------------------------------------+ 
vid | nid | delta | field_homephone_value 
22196 | 22196 |  0 | 6505551212 
22196 | 22196 |  1 | 6505551444 

私が生成されます結合文を記述しようとしている:

+----------------------------------------------------+ 
TRYING TO OUTPUT 
+----------------------------------------------------+ 
title  | field_homephone_value | delta 
John Doe | 6505551212   | 0 
Jane Doe | 6505551444   | 1 

+----------------------------------------------------+ 

CURRENTLYあなたが複数のフィールドに参加することができるOUTPUT

+----------------------------------------------------+ 
title  | field_homephone_value | delta 
John Doe | 6505551212   | 0 
Jane Doe | 6505551212   | 1 

+----------------------------------------------------+ 
THE QUERY AS IT'S CURRENTLY WRITTEN 
+----------------------------------------------------+ 

SELECT p.field_name_nid, n2.title, p.delta, pp.field_homephone_value 
FROM node n 
LEFT JOIN content_field_pn p ON n.nid = p.nid 
LEFT JOIN node n2 ON p.field_name_nid = n2.nid 
LEFT JOIN content_field_pp pp ON p.nid = pp.nid 
WHERE n.nid = 22196 
GROUP BY p.delta 

答えて

14

の句:

LEFT JOIN content_field_pp pp ON p.nid = pp.nid AND p.vid = pp.vid 
               ^^^^^^^^^^^^^^^^^^ 
+0

Ah!ありがとうございました – WonderBugger

+0

男、私は1分でそれを逃した! – KOGI

+0

@歌:私は1分で私を倒すと思います。おそらく私の答えは、その質問のテーブル定義を使用しているので、受け入れられました。 – Andomar

3

されているもの...

SELECT `blah` FROM `a` LEFT JOIN `b` ON `b`.`id` = `a`.`id` AND `b`.`field2` = `a`.`field2` 
関連する問題