私は 4 つのテーブルを持っていa,b,c,d
ます。表a
には のペアがありid, name
ます。表b
には のペアがありidx, idy
ます。はb.idy
table から来ますa.id
。テーブルには、 table に関連するc, d
ペアがあります。id, value
b.idx
次のようなクエリを実行する必要があります。
SELECT c.value, d.value
FROM a,b,c,d
WHERE a.name = "test" AND b.idy = a.id AND (c.id = b.idx AND d.id = b.idx)
問題は、テーブルに欠落しているレコードがある場合があるc, d
ため、レコードが返されないことですが、またはAND
で利用可能な場合は結果が必要です。また、両方のテーブルに対しても他の行を返すため、使用できません。c
d
OR
UNION
を使用するか、単にネストされたsを使用するソリューションがあると思いSELECT
ます。JOIN
私は分割帖を使用しないか、使用しないことを好みます。
前もって感謝します!
アップデート:
使用を避ける理由JOIN
はパフォーマンスです。私が現在取り組んでいる構造は、これよりもはるかに複雑であるためJOIN
、将来的に深刻なパフォーマンスの問題が発生することは確実です.