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