我以为我用下面的两个查询得到了相同的结果,但是当我尝试时得到了不同的结果,谁能解释一下除了加入和子查询之外有什么区别。这里 t1id 是主列, t2id 是来自 tbl_1 的引用列
select * from tbl_1 where t1id in (select t2id from tbl_2);
select t1.* from tbl_1 t1, tbl_2 t2 where t1.t1id = t2.t2id;
编辑:当我尝试获得第一个查询的 93 条记录和第二个查询的 74 条记录时,我稍微更改了第一个查询,例如:
select * from tbl_1 where t1id in (select distinct t2id from tbl_2);
然后我得到了 40 行。任何人都可以解释发生了什么。
提前致谢