lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

SQLの内部結合と外部結合を組み合わせるメモ

概要

内部結合と外部結合の組み合わせSQLでハマったのでメモ
解説向けならテーブル用意しないといけないけど
業務で使用したのとかぶらないように考えるの面倒だからね
仕方ないね。

前提

ある処理を行いデータを作成する。
そのデータが正しいかを判定するSQLを作成する。

外部参照テーブル 2つ
検証対象テーブル 1つ

例文

テーブル用意するのが面倒過ぎた
処理速度とかの考慮はない!

SELECT 適当
FROM hogehoge AS hh
    LEFT JOIN(
	SELECT	*
	FROM	fugafuga AS fuga1
	    INNER JOIN(
		SELECT 適当
		FROM fugafuga AS fuga2
		GROUP BY 適当
	    ) AS fuga3
		ON	なんか処理
		AND	なんか処理
	GROUP BY 適当
	) AS f
	    ON	適当な処理
	    AND	適当な処理
    LEFT JOIN ~~~こんな感じで続ける

LEFT JOINで外部結合したfugafugaテーブルのみでグルーピングができない場合
先にグルーピングできる項目に編集してINNER JOINで内部結合をかましてやる

ASでつけた別名のスコープもだいたい分かった。

雑感

例用のテーブル用意しないとほんとにわけわからんな
面倒だからゆるして~