SQL- JOIN来自两个表的两列

mrj*_*min 1 mysql sql database union

我需要帮助来制定查询.我想从表A和表B中选择所有DISTINCT颜色.

这是查询的结果:

BLACK
RED
YELLOW
BLUE
Run Code Online (Sandbox Code Playgroud)

我有这些表:

表A.

ID   NAME    COLOR
5    SOCKS   BLACK
4    SOCKS   RED
Run Code Online (Sandbox Code Playgroud)

表B

ID   NAME   COLOR 
0    CAR    BLUE
1    BIKE   BLUE
5    TRUCK  YELLOW
10   PLANE  NULL
Run Code Online (Sandbox Code Playgroud)

我试过了:

SELECT DISTINCT A.color FROM A JOIN B ON b.color
Run Code Online (Sandbox Code Playgroud)

但我没有得到所有的颜色.:(

Erw*_*ter 7

SELECT color FROM A
UNION
SELECT color FROM B
WHERE  color IS NOT NULL -- only filters NULL from B
ORDER  BY color          -- sorts all rows
Run Code Online (Sandbox Code Playgroud)

UNION(而不是UNION ALL)删除重复项.不需要额外的子查询或DISTINCT.