我有一個MySQL SELECT查詢,它使用Mysql JOIN從6個表中獲取數據。這裏是我正在使用的MySQL查詢。使用MySQL的問題加入
SELECT
u.id,u.password,
u.registerDate,
u.lastVisitDate,
u.lastVisitIp,
u.activationString,
u.active,
u.block,
u.gender,
u.contact_id,
c.name,
c.email,
c.pPhone,
c.sPhone,
c.area_id,
a.name as areaName,
a.city_id,
ct.name as cityName,
ct.state_id,
s.name as stateName,
s.country_id,
cn.name as countryName
FROM users u
LEFT JOIN contacts c ON (u.contact_id = c.id)
LEFT JOIN areas a ON (c.area_id = a.id)
LEFT JOIN cities ct ON (a.city_id = ct.id)
LEFT JOIN states s ON (ct.state_id = s.id)
LEFT JOIN countries cn ON (s.country_id = c.id)
雖然查詢工作得很好,但如果在使用LEFT JOIN時發現任何重複值,它有時會返回重複結果。例如在聯繫人表中,存在兩個區域id爲'2'的行,這導致返回另一個重複的行。我如何做一個查詢,只選擇所需的結果沒有任何重複的行。是否有任何不同類型的MySQL加入我應該使用?
謝謝
UPDATE:
這裏是接觸表中,列AREA_ID可能有幾個重複的值。
答:
有在我的最後LEFT條件加入一個錯誤的位置我已經使用(s.country_id = c.id)
而不是分裂的查詢和單獨測試後,它應該是(s.country_id = cn.id)
我得到跟蹤錯誤。感謝您的答覆。現在它工作得很好。
我已更新我的帖子,請看看。 – 2011-05-09 16:01:50