我想從三個表中提取數據,但如果數據不存在於第三個表中,則應從其他兩個表中提取數據。來自三個表的數據
我現在有一個查詢:
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
的人來說,「圖像」並不存在。
我想從其他兩個表中提取數據,而不管是否存在「image」和m.id
。
我該怎麼做?
謝謝!更好,但仍然不正確! :-(我得到大約218行313. – Helge 2010-12-13 02:43:57
不正確?哪些行被排除?嘗試合併where子句中的所有列: WHERE COALESCE(meta.meta_key,'image')='image'AND COALESCE m.country,'USA')='USA'(注意我刪除了m.zipcode = p.zipcode,因爲已經寫在ON子句中) – YudhiWidyatama 2010-12-13 02:48:38
在改變之後輸出相同!它可能與此有關,並非所有用戶都有一個與meta.id相對應的m.id?某些用戶只存在於成員表中,但他們沒有這種特定類型的ID,如果他們沒有member.id,那麼他們也不會有一個meta.id. – Helge 2010-12-13 03:01:32