3 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
是的,請(qǐng)參閱Wikipedia上的示例。
SELECT employee.*, department.*
FROM employee
LEFT JOIN department
ON employee.DepartmentID = department.DepartmentID
UNION ALL
SELECT employee.*, department.*
FROM department
LEFT JOIN employee
ON employee.DepartmentID = department.DepartmentID
WHERE employee.DepartmentID IS NULL

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
在喬納森·萊夫勒(Jonathan Leffler)評(píng)論之后,這是馬克·拜爾斯(Mark Byers)的另一種答案:
SELECT * FROM table_name_1 LEFT OUTER JOIN table_name_2 ON id_1 = id_2
UNION
SELECT * FROM table_name_2 LEFT OUTER JOIN table_name_1 ON id_1 = id_2
請(qǐng)參閱此處以獲取原始源代碼和其他SQLite示例。

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果使用UNION ALL,則兩個(gè)選擇之一必須排除“內(nèi)部聯(lián)接”行,例如所示的WHERE條件,這一點(diǎn)至關(guān)重要?;蛘?,您可以使用普通的UNION并消除其重復(fù),以避免重復(fù)“內(nèi)部聯(lián)接”行。
添加回答
舉報(bào)