2010-11-08 81 views
1

我有一個查詢不起作用,它是拉開我的瘋狂;)。基本上這是我想要實現的:從多個表中選擇數據並使用左連接?

SELECT 
    table1.field1, 
    table1.field2, 
    table2.field1, 
    table3.field1 
FROM 
    table1, 
    table2 
LEFT JOIN 
    table3 
ON table3.field1 = table2.field1 

但由於某種原因,我無法執行此查詢。我相信這是因爲在告訴從多個表中選擇之後正在執行聯接。因爲這個查詢在我從1個表中選擇時起作用。

有人能告訴我當我想從多個表中選擇並使用連接時該怎麼做?

+1

有Table 1和Table之間的關係? – 2010-11-08 14:52:23

+1

請問您可以發佈'table1','table2','table3'和查詢的所需輸出的一些示例數據嗎? – Quassnoi 2010-11-08 14:53:18

+1

「無法執行此查詢」是什麼意思?它會給你一個錯誤?語法看起來正確 – David 2010-11-08 14:57:00

回答

1

您可能需要第一次加入的JOIN和ON子句。例如:

SELECT 
    t1.field1, 
    t1.field2, 
    t2.field1, 
    t3.field1 
FROM table1 t1 
INNER JOIN table2 t2 on t1.ID = t2.ID 
LEFT JOIN table3 t3 ON t3.field1 = t2.field1 

請注意,INNER JOIN可能需要是一個左連接,從您的問題中不清楚。

+0

確實是這個問題,只是我不知道我可以從多個表中選擇並在表之間使用連接。再次感謝+1並接受。 – Ben 2010-11-08 15:14:49

3

你缺少table1table2之間的JOIN條件:

SELECT table1.field1, 
     table1.field2, 
     table2.field1, 
     table3.field1 
FROM table1 
LEFT JOIN 
     table2 
ON  table2.id = table1.id 
LEFT JOIN 
     table3 
ON  table3.field1 = table2.field1 
+0

你說得對,但我只能接受1個答案。 +1雖然!謝謝。 – Ben 2010-11-08 15:22:41