2011-02-14 225 views
0

我有一個表結構如下:MySQL的左連接

註冊(1至0/1)cobuy(1〜0/*)cobuy_area_instance(0/* 1)區域

甲搜索上一個註冊用戶列表必須從左向右返回用戶,例如,它必須返回沒有cobuy配置文件的註冊用戶,那些用戶沒有區域的用戶,以及三個用戶。

我知道這應該通過左連接來實現,但我不清楚如何最好地處理。我需要註冊表,cobuy表和區域表中的字段,具體取決於存在的內容。

appreicated任何幫助......

回答

1
SELECT R.FIELD_1, C.FIELD_2, CAI.FIELD_3 
FROM REGISTERED R 
LEFT OUTER JOIN COBUY C ON R.UID=C.UID 
LEFT OUTER JOIN COBUY_AREA_INSTANCE CAI ON C.CID=CAI.CID 

應該給你從註冊表格加上從COBUY表中的任何現有項目從COBUY_AREA_INSTANCE表中的任何現有項目的每個項目和。

注意,我對付MSSQL所以語法可能不正確。

針對連接的WHERE子句進行了編輯。

SELECT R.FIELD_1, C.FIELD_2, CAI.FIELD_3 
FROM REGISTERED R 
LEFT OUTER JOIN COBUY C ON (R.UID=C.UID AND C.DATE > '2011-02-14') 
LEFT OUTER JOIN COBUY_AREA_INSTANCE CAI ON C.CID=CAI.CID 

看起來像我的解決方案。

+0

太好了。謝謝你,會試試這個... – Sphere 2011-02-14 11:28:10