また、データベース テーブルを結合する方法について質問があります。私のデータ設定は次のとおりです。
MainTable
main_id x y z
1 l m n
2 o p q
SubTableA
main_id extra_id foo bar
1 a 1 4
1 b 2 h
1 c 1 g
2 a k er
2 b k 34
2 c l f
SubTableB
main_id extra_id a b c
1 a v r j
1 c w r k
2 c x h l
SubTableC
main_id extra_id mono stereo
2 c n null
2 d z y
私は次の結果を達成しようとしています:
main_id x y z extra_id foo bar a b c mono stereo
1 l m n a 1 4 v r j null null
1 l m n b 2 h null null
1 l m n c 1 g w r k null null
2 o p q a k er null null
2 o p q b k 34 null null
2 o p q c l f x h l n null
2 o p q d z y
物事を盛り上げるために、extra_id
null であるか、サブテーブルの 1 つが含まれていないことがありますmain_id
が、他のテーブルを結合して、見つからない値を null で埋めたいと思います。
その場合、結果を次のようにしたいと思います
main_id x y z extra_id foo bar a b c null null
。たとえば。
ID を使用して複数の SQL テーブルを結合するにはどうすればよいですか? テンプレートとしてですが、完全には取得できませんでした。
これは私がこれまでに試したことです:
SELECT
m.*,
a.*,
b.*,
c.*,
FROM
MainTable m,
SubTableA a,
SubTableB b,
SubTableC c,
WHERE
m.main_id = a.main_id(+)
AND a.main_id=b.main_id(+)
AND a.extra_id=b.extra_id(+)
AND a.main_id = c.main_id(+)
AND a.extra_id = c.extra_id(+);
編集:
メインテーブルのすべての行が必要です。それらが main_id のサブテーブルと一致する場合、extra_id ごとにそれらを結合します (各 main_id に対して複数の可能性があります)。また、main_id と extra_id の組み合わせが複数のサブテーブルに存在する場合は、それらを結合したいと考えています。再びラップトップの前にいるときのより詳細な例を示します。
ありがとう、
クリスチャン