我以爲我用以下兩個查詢獲得相同的結果,但當我嘗試時得到了不同的結果,有誰可以請解釋除了聯接和子查詢之外有什麼區別。 從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