※この備忘録は初学者の私が学習した内容を忘れないために書き起こしたものとなります。
今回の目的
下記の「県テーブル」、「色テーブル」から、各県の人口に応じて、カラーコードを取得したい。
<条件>
◇下記人口に応じて、必要なカラーコードを取得
・人口100万人未満…青色
・人口100万人以上200万人未満…緑色
・人口200万人以上300万人未満…黄色
・人口300万人以上…赤色
作成したコード
SELECT 県.県ID
, 県.県名
, 県.人口
, 色.カラーコード
FROM 県, 色
WHERE 県.人口 < 1000000
AND 色.色ID = 1
UNION ALL
SELECT 県.県ID
, 県.県名
, 県.人口
, 色.カラーコード
FROM 県, 色
WHERE 県.人口 < 2000000
AND 県.人口 >= 1000000
AND 色.色ID = 2
UNION ALL
SELECT 県.県ID
, 県.県名
, 県.人口
, 色.カラーコード
FROM 県, 色
WHERE 県.人口 < 3000000
AND 県.人口 >= 2000000
AND 色.色ID = 3
UNION ALL
SELECT 県.県ID
, 県.県名
, 県.人口
, 色.カラーコード
FROM 県, 色
WHERE 県.人口 >= 3000000
AND 色.色ID = 4
ORDER BY 県ID
取得結果
感想
2つのテーブルを使用して何らかのデータを取得したいとき、
私は真っ先ににjoinを考えてしまうが、今回のように2つのテーブルがjoinで結合するのが困難な時(2つのテーブルで共通するカラムの無いとき)は、UNION ALLを扱えるようにしたい