DISTINCT記錄在MySQL查詢從結果集DISTINCT在MySQL查詢去除結果集
刪除記錄我有三個表
TBL1 TBL2 TBL3
---- ------ --------
tbl1_id tbl2_id tbl3_id
cid fkcid fkcid
fktbl1_id fktbl2_id
我有查詢來獲取TBL3
select distinct tbl3.* from TBL3 tbl3
inner join TBL2 tbl2 on tbl2.tbl2_id = tbl3.fktbl2_id and tbl2.fkcid = tbl3.fkcid
inner join TBL1 tbl1 on tbl1.tbl1_id = tbl2.fktbl1_id and tbl2.fkcid = tbl1.cid;
記錄
此查詢爲我提供了大約1000條記錄。
但是當我刪除不同於查詢它給了我大約1100條記錄。 表中沒有重複的記錄。我也確認這些額外的100不是重複的。請注意,在具有不同關鍵字的查詢中找不到這些額外的100條記錄。
爲什麼這個查詢的行爲意外。請幫助我更清楚地理解並糾正我,如果我犯了錯誤。 謝謝
你可能有一到當你加入其他表時發生的多種關係。這意味着您的'Tbl3'鍵在'Tbl1'或'Tbl2'中出現多次。 DISTINCT刪除這些_duplicates_,但它們實際上並不重複。如果您包含所有表中的所有數據,則可以看到數據。 – Taryn 2014-08-29 14:13:05