2010-03-24 51 views
0

我有2個表格。使用MYSQL查詢多個表格

Table_1有產品3行:ID,數量和價格。 Table_2有兩行:ID,Special_note。

並非所有產品都有特別說明。當產品沒有特別說明時,表2中沒有該產品的行。

我試圖使用select查詢來獲取table_1中的所有信息,但也從中獲取特殊註釋table_2當有一個。

我現在遇到的問題是,如果沒有特別說明,它將根本無法獲取table_1中的信息。

我明白爲什麼它這樣做,但我不知道如何修復查詢,以便它返回所有的產品是否有特別的筆記。

SELECT TABLE_1.ID, QUANTITY, PRICE, SPECIAL_NOTE 
FROM TABLE_1, TABLE_2 
WHERE TABLE_1.ID = TABLE_2.ID 

爲了本示例的目的,我簡化了查詢。

感謝您的幫助!

回答

2

使用LEFT OUTER JOIN

SELECT t1.ID, t1.QUANTITY, t1.PRICE, t2.SPECIAL_NOTE 
FROM TABLE_1 t1 
LEFT OUTER JOIN TABLE_2 t2 ON t1.ID = t2.ID 

更新:

要添加WHERE條款,例如,在數量> = 1,這樣做:

SELECT t1.ID, t1.QUANTITY, t1.PRICE, t2.SPECIAL_NOTE 
FROM TABLE_1 t1 
LEFT OUTER JOIN TABLE_2 t2 ON t1.ID = t2.ID 
WHERE t1.QUANTITY >= 1 
+0

非常感謝你。試圖把握這個新概念。假設我只想抓取數量至少爲1的行。我在哪裏添加where查詢?在LEFT OUTER JOIN線後? – Enkay 2010-03-24 15:35:56

+0

請參閱上面的我的編輯。 – RedFilter 2010-03-24 15:56:28

+0

我已經想通了一個簡單的例子!試圖使它與我的實際非常漫長而複雜的查詢一起工作。非常感謝! – Enkay 2010-03-24 16:30:31