您需要使查詢一致。 你的查詢是所有表的笛卡爾乘積,在大多數的情況下並沒有太大的意義
這裏是更好的東西(假設master_id
是參考了候選實例):
SELECT candidate_id.master_id, candidate_contact_details.first_name,
candidate_contact_details.last_name,
candidate_contact_details.home_phone
FROM candidate_id, candidate_contact_details, qualifications
WHERE qualifications.active = 'yes' AND candidate_id.master_id = candidate_contact_details.master_id AND qualifications.master_id = candidate_id.master_id;
更妙的是使用JOIN
和使用別名表名,使代碼更易讀:
SELECT c.master_id, cc.first_name,cc.last_name,cc.home_phone
FROM candidate_id c
JOIN candidate_contact_details cc
ON c.master_id = cc.master_id
JOIN qualifications q
ON c.master_id = q.master_id
WHERE q.active = 'yes';
你缺少一些條件來關聯這個*原始的* 3加入 – ascanio
你可以改善這個問題的標題?我們知道這是「MySQL」,因爲您將它標記爲「MySQL」,如果您沒有「問題」,那麼您就不會在這裏。選擇一個區別這個問題的標題。 –