1

クエリを作成するのに助けが必要です。テーブル 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

しかし、私はすべての色を取得していません。:(

4

5 に答える 5

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

UNION(代わりにUNION ALL) 重複を削除します。追加のサブクエリやDISTINCT.

于 2012-04-22T23:10:55.180 に答える
4
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 と組み合わせると不要になるため、削除しました。これを忘れがちです。

于 2012-04-22T23:04:30.337 に答える
1

試す:

SELECT DISTINCT Color
FROM (
    SELECT Color FROM TableA
    UNION ALL
    SELECT Color FROM TableB
) Colors
WHERE NOT Color IS NULL
于 2012-04-22T23:07:25.743 に答える
1

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

nullを削除するように編集

完全開示 - SQL Fiddle は私のサイトです

于 2012-04-22T23:07:46.933 に答える
0
異なる色を選択
(
    (
        (WHERE color IS NOT NULL から色を選択)
        連合
        (色が NULL でない B から色を選択)
    ) AS温度
)

于 2012-04-22T23:27:44.910 に答える