簡體   English   中英

SQL-JOIN來自兩個表的兩個列

[英]SQL- JOIN two column from two tables

我需要幫助來制定查詢。 我想從表A和表B中選擇所有DISTINCT顏色。

這是查詢的結果:

BLACK
RED
YELLOW
BLUE

我有這些表:

表A

ID   NAME    COLOR
5    SOCKS   BLACK
4    SOCKS   RED

表B

ID   NAME   COLOR 
0    CAR    BLUE
1    BIKE   BLUE
5    TRUCK  YELLOW
10   PLANE  NULL

我努力了:

SELECT DISTINCT A.color FROM A JOIN B ON b.color

但是我沒有得到所有的顏色。 :(

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

UNION (而不是UNION ALL )刪除重復項。 無需其他子查詢或DISTINCT

SELECT 
  A.Color FROM TableA A
WHERE A.Color IS NOT NULL
UNION
SELECT
  B.Color FROM TableB B
    WHERE B.Color IS NOT NULL

我刪除了DISTINCT,因為將它與UNION結合使用時沒有必要-我總是會忘記這一點!

嘗試:

SELECT DISTINCT Color
FROM (
    SELECT Color FROM TableA
    UNION ALL
    SELECT Color FROM TableB
) Colors
WHERE NOT Color IS NULL

http://sqlfiddle.com/#!2/0de4d/5

SELECT distinct
    COLOR
FROM
    (
      select color from TableA
      UNION
      select color from TableB
    ) tmp
WHERE color IS NOT NULL
order by color

編輯以刪除空值

全面披露-SQL Fiddle是我的網站

SELECT DISTINCT color FROM 
(
    (
        (SELECT color FROM A WHERE color IS NOT NULL)
        UNION 
        (SELECT color FROM B WHERE color IS NOT NULL)
    ) AS temp
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM