我以为我用以下两个查询获得相同的结果,但当我尝试时得到了不同的结果,有谁可以请解释除了联接和子查询之外有什么区别。 从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;
编辑在这里t1id被主列和T2ID被引用的列:当我想我有93条记录为第一个查询和74第二个查询,我略微改变了第一查询关键词,比如:
select * from tbl_1 where t1id in (select distinct t2id from tbl_2);
然后我得到了40行。任何人都可以解释发生了什么。
预先感谢
当您比较两个时,'EXPLAIN'会说些什么?第二个查询是'JOIN'的一种形式,其中第一个是直接子查询。 – tadman 2013-05-01 06:43:35