3つのテーブルからデータを取得したいが、3つ目のテーブルにデータが存在しない場合は、他の2つのテーブルのデータを取得する必要があります。3つのテーブルのデータ
私は今、クエリを持っている:
SELECT m.name, m.zipcode, p.lat, p.lon, meta.meta_value
FROM members AS m
INNER JOIN zipcodes AS p ON m.zipcode = p.zipcode
INNER JOIN usermeta AS meta ON m.id = meta.id
WHERE m.zipcode = p.zipcode AND meta.meta_key = 'image' m.country = "USA"
m.id
とmeta.id
は、それらのすべてのために存在していません。
m.id
のユーザーの場合、「画像」はすべて存在しません。
「画像」とm.id
の存在とは関係なく、2つの他のテーブルからデータを取得したいと考えています。
どうすればいいですか?
ありがとう!良いですが、まだ正しくありません! :-(私は約218列の313を取得します。 – Helge
は正しくありません。どの行が除外されていますか?where句のすべての列を結合してみてください: WHERE COALESCE(meta.meta_key、 'image')= 'image' AND COALESCE m.zipcode = p.zipcodeは既にON句で書かれているため、削除しました) – YudhiWidyatama
変更後も同じ出力です!すべてのユーザが持っているわけではありませんmeta.idに対応するm.id?一部のユーザーはメンバー表にのみ存在しますが、この特定のタイプのIDはありません。member.idがない場合は、 meta.idを持っています – Helge