我想顯示兩個表的「FULL JOIN」,但使用帶有外鍵的中介來創建匹配。mySQL JOIN語句不返回我想要的
這應顯示所有員工的項目清單,並顯示任何沒有項目的員工或沒有員工的項目。
此查詢的問題是第二個「RIGHT JOIN」覆蓋第一個「LEFT JOIN」。我第二次嘗試「全加盟」的嘗試都失敗了。 (1064語法錯誤,真正的描述)
SELECT EMP_LNAME, EMP_FNAME, Project.PROJ_NAME
FROM Employee1
LEFT JOIN Assignment ON Employee1.EMP_CODE = Assignment.EMP_CODE
FULL JOIN Project ON Assignment.PROJ_CODE = Project.PROJ_CODE
ORDER BY Employee1.EMP_LNAME /* Syntax error */
第二類我試圖
SELECT EMP_LNAME, EMP_FNAME, Project.PROJ_NAME
FROM Employee1
LEFT JOIN Assignment ON Employee1.EMP_CODE = Assignment.EMP_CODE
RIGHT JOIN Project ON Assignment.PROJ_CODE = Project.PROJ_CODE
ORDER BY Employee1.EMP_LNAME /* Right join overwrites original left join */
你能解釋一下你想幹什麼? – 2010-11-13 21:24:32
對不起,如果我沒有說清楚: 表Employee1具有員工的姓名和ID。 表項目包含項目的名稱和ID。 表分配使用外鍵將員工分配給項目。 我想對Employee1和Project表執行「FULL JOIN」,但必須使用Assignment表作爲中介。 – 2010-11-13 21:36:19