以下の2つのクエリで同じ結果が得られると思いましたが、試してみると別の結果が得られました。結合とサブクエリ以外の違いを説明してください。ここで 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;
EDIT:最初のクエリで93レコード、2番目のクエリで74レコードを取得しようとしたとき、最初のクエリを次のようにわずかに変更しました:
select * from tbl_1 where t1id in (select distinct t2id from tbl_2);
それから私は40行を得ました。誰が何が起こっているのか説明できますか。
前もって感謝します