タグ: SQL
MySQLでNULLを含む列をORDER BYしたときの挙動
NULL値を許容するカラムをORDER BYで取り出す際、
MySQL :: MySQL 4.1 リファレンスマニュアル :: 3.3.4.6 NULL 値の使用
より
ORDER BY を処理する場合、NULL 値は、ORDER BY ... ASC では先頭に表示され、ORDER BY ... DESC では最後に表示されます。
となる。
昇順(ASC)でNULLを最後に表示したい場合は、
ORDER BY created_at IS NULL ASC, created_at ASC;
のようにする。
- MySQL の ORDER BY で NULL を先にもってきて NULL 以外は降順にする « をぶろぐ
- MySQLで昇順ソートする時、NULL を最後に持ってくる – Web Tech Log by 1KB
MySQLでの完全外部結合
ネタ元:http://oshiete1.nifty.com/qa6019895.html
MySQLでは、FULL OUTER JOINが使えないので、以下の方法で代用する
現在あるテーブル
table : test1
value id
——————-
ああ 3
いい 4
うう 5
table : test2
value id
——————–
AAA 1
BBB 2
CCC 3
DDD 4
欲しい結果
NULL NULL AAA 1
NULL NULL BBB 2
ああ 3 CCC 3
いい 4 DDD 4
うう 5 NULL NULL
方法
RIGHT JOINとLEFT JOINをUNIONする
SELECT * FROM test1
LEFT JOIN test2 ON test1.id=test2.id
UNION
SELECT * FROM test1
RIGHT JOIN test2 ON test1.id=test2.id