4
我可以在sybase中完成,我可以在oracle中完成,但是我沒有看到如何在mysql中完成它。如何在mysql中結合內連接和外連接
我有這樣的: (請剋制自己從重新格式化我的SQL,最後一次有人這樣做,他們改變了它,所以它是不一樣的,並提出問題毫無意義)
select table1.id
from
table1
inner join
table2 on (table1.id = table2.id and table2.data='cat'),
table1 t1
left outer join
table3 on (t1.id = table3.id and table3.data = 'dog')
我得到各種毫無意義的結果。
我想從table1中獲取所有id的列表,其中table2.data = cat,然後對table3的數據進行外部連接,其中table3.data = dog。
我注意到我無法爲兩個連接子句中的table1指定相同的表/別名,所以這使我相信mysql正在單獨運行連接表達式,並將結果或在一起或類似的東西。
我也嘗試擺脫了從內部的「內部連接」,並把它放在where子句,即使沒有工作,雖然它沒有以不同的方式工作(得到不同的錯誤結果)
這在sybase或oracle中會很容易。
我在做什麼錯?
使用逗號語法,通常情況下,您可以通過在WHERE子句中添加條件來防止它成爲交叉連接。 – 2009-01-08 05:34:09