SQLクエリで複数の左結合を使用することは可能ですか?
LEFT JOIN
ab
ON
ab.sht = cd.sht
このようなクエリをもう1つ添付して追加したいですか?うまくいきますか?
LEFT JOIN
ab AND aa
ON
ab.sht = cd.sht
AND
aa.sht = cc.sht
これは機能しますか?
はい、可能です。結合テーブルごとに1つのONが必要です。
LEFT JOIN ab
ON ab.sht = cd.sht
LEFT JOIN aa
ON aa.sht = cd.sht
ちなみに、複雑なSQLの個人的な書式設定は http://bentilly.blogspot.com/2011/02/sql-formatting-style.html で説明されています。あなたがこれの多くを書くつもりであるならば、それはたぶん役立つでしょう。
はい、しかし構文はあなたが持っているものとは異なります
SELECT
<fields>
FROM
<table1>
LEFT JOIN <table2>
ON <criteria for join>
AND <other criteria for join>
LEFT JOIN <table3>
ON <criteria for join>
AND <other criteria for join>
必要なSQLは次のようになります。
SELECT * FROM cd
LEFT JOIN ab ON ab.sht = cd.sht
LEFT JOIN aa ON aa.sht = cd.sht
....
それが役に立てば幸い。
テーブルの順序に応じて、2つの選択肢があります
create table aa (sht int)
create table cc (sht int)
create table cd (sht int)
create table ab (sht int)
-- type 1
select * from cd
inner join cc on cd.sht = cc.sht
LEFT JOIN ab ON ab.sht = cd.sht
LEFT JOIN aa ON aa.sht = cc.sht
-- type 2
select * from cc
inner join cc on cd.sht = cc.sht
LEFT JOIN ab
LEFT JOIN aa
ON aa.sht = ab.sht
ON ab.sht = cd.sht