2012-01-18 14 views
1

いくつかのテーブルで結合を使いたいのですが、解決策を見つけるのが難しいです。3つのテーブルを結合する方法があります。どちらも「メイン」ではない場合

このSQL(ストリップダウン)を取る:

SELECT 
* 
FROM project_contacts c 
LEFT JOIN projects p ON c.project=p.ID 
LEFT JOIN project_contact_type ON people.project_contact_type=project_contact_type.ID 
LEFT JOIN people ON c.person=people.ID 
WHERE p.live = 1 
ORDER by p.code 
LIMIT 4; 

はエラーを返します:

不明な列 'people.project_contact_typeを' '句に'

をラインから: LEFT JOINを「people.project_contact_type」は問題です。 'people'テーブルに基づいて見つけられ、 'project_contacts'テーブルではなく、他のジョインがオフになっているテーブルが見つかりましたか?

だから私はthatsの場合は私がやろうとしているにも何に参加、他の内部の参加を行う方法がわからない;)...の

+2

人々左を入れて第二のJOINとproject_contact_type 3日に – Sparky

答えて

3

順序が重要に参加する:システムが把握していません人については、あなたのリストで2番目になる必要があります。

SELECT 
* 
FROM project_contacts c 
LEFT JOIN projects p 
    ON c.project=p.ID 
LEFT JOIN people 
ON c.person=people.ID 
LEFT JOIN project_contact_type 
    ON people.project_contact_type=project_contact_type.ID 
WHERE p.live = 1 
ORDER by p.code 
LIMIT 4; 
+0

感謝を動かし、それは、狂気私を運転順序を変更することを考えたことはありませんが、それは今で理にかなった:) – Tim

0

これを試してみてください:

SELECT * 
FROM project_contacts c 
LEFT JOIN projects p ON c.project=p.ID 
LEFT JOIN people ON c.person=people.ID 
LEFT JOIN project_contact_type ON people.project_contact_type=project_contact_type.ID 
WHERE p.live = 1 
ORDER by p.code 
LIMIT 4; 
関連する問題