との時間を取っている私は、2つのテーブルを想定していのtable_1 & table_2 のtable_1は56列と120万件のレコードを持っている 私のクエリは、私が欲しいSQLないが、同様のテーブル
ようのtable_1
RollNumber | Subject | G | Part | Status
------------------------------------------------
1 | 1 | 1 | 1 | 1
1 | 1 | 1 | 2 | 1
1 | 2 | 1 | 1 | 1
1 | 2 | 1 | 2 | 5
1 | 3 | 1 | 1 | 0
1 | 3 | 1 | 2 | 1
2 | 1 | 2 | 1 | 1
2 | 1 | 2 | 2 | 1
2 | 2 | 2 | 1 | 1
2 | 2 | 2 | 2 | 1
2 | 3 | 2 | 1 | 1
2 | 3 | 2 | 2 | 1
3 | 1 | 2 | 1 | 1
3 | 1 | 2 | 2 | 1
3 | 2 | 2 | 1 | 1
3 | 2 | 2 | 2 | 1
3 | 3 | 2 | 1 | 0
3 | 3 | 2 | 2 | 1
のようなものですすべてのステータスが0であるが、ステータス= 5(または1以外)の生徒を望んでいないtable_1のすべてのRollNumber(2番目と3番目の列でグループ化)
これを試してみました
select * from table_1 as t1
inner join table_2 as t2
on t1.column2 = t2.column2 and t1.column3 = t2.column3 and t1.column4 = t2.column4
where t1.column1 not in
(select column1 from table_1 where status = 5)
これは、私はまた、あなたがNOT IN.
この意志の代わりにEXISTS
を使用することができます
両方のクエリが
なぜ 'status'をフィルタリングするためにサブクエリを使用しますか? –
[実行計画](http://stackoverflow.com/questions/7359702/how-do-i-obtain-a-query-execution-plan)のクエリを表示してください。 'column1'、' column2'、 'column3'、' status'にインデックスを追加しましたか? – kennytm
@kennytm私は編集した質問を今すぐに検討してください,,,ありがとう – Brainiac