MYSQL想要比较两个表和选择数据

时间:2015-12-05 06:39:49

标签: mysql sql

我有两张桌子。

table 1
1
2
3
4

table 2
1
2
3

我想从表中选择数据

表1包含所有数据。 但是表2可能包含所有数据。 所以 如果表1数据退出表2,则数据选择表2数据,否则选择表一数据。

如果表1数据未退出表2,则选择表1数据。

怎么办呢?

2 个答案:

答案 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