Subquery

使用自聯接從單個表中選擇數據

  • November 23, 2015

我需要從單個表中選擇數據。要求如下 從具有一個值但沒有另一個值的表中選擇數據。例如,我想選擇具有值 1 但不存在值 8 的不同 ID。對於上述情況,例如所需的 o/p 應該是

標識值
123 1
123 8
234 8
456 1
876 5
876 1
765 8
765 5

操作 ID

456
876

此外,我的表包含 500K 記錄,因此查詢應該能夠以良好的性能執行任何關於它的幫助,因為我被卡住了。

這是我如何讓它工作的:

create table tableone (id int, value int)
insert into tableone values (123,     1);
insert into tableone values (123,     8);
insert into tableone values (234,     8);
insert into tableone values (456,     1);
insert into tableone values (876,     5);
insert into tableone values (876,     1);
insert into tableone values (765,     8);
insert into tableone values (765,     5);
Select a.*
from tableone a
left join tableone X on a.id = x.id and x.value = 8
Where a.value = 1
and X.id is null
drop table tableone

引用自:https://dba.stackexchange.com/questions/121702