我有两张桌子。
table 1
1
2
3
4
table 2
1
2
3
我想从表中选择数据
表1包含所有数据。 但是表2可能包含所有数据。 所以 如果表1数据退出表2,则数据选择表2数据,否则选择表一数据。
如果表1数据未退出表2,则选择表1数据。
怎么办呢?
答案 0 :(得分:2)
您需要OUTER JOIN
:
SELECT t1.ID,
COALESCE(t2.col1, t1.col1) AS col1, -- prefer data from table_2 if exists
COALESCE(t2.col2, t1.col2) AS col2,
-- ...
FROM table_1 t1 -- "table 1 have all data"
LEFT JOIN table_2 t2 -- "table 2 may have all data or not"
ON t1.ID = t2.ID;
答案 1 :(得分:0)
尝试FULL OUTER JOIN
SELECT t2.col1, t1.col1
FROM
table_1 t1 FULL OUTER JOIN table_2 t2
ON t2.col1 = t1.col1
或者,如果您的数据库不支持完整加入,请尝试emulating them。