看起來像你想relational division一個提醒。
SQL Fiddle
的Oracle 11g R2架構設置:
create table YourTable
(
Name varchar(10),
Lang varchar(10),
primary key (Name, Lang)
);
insert into YourTable values('John', 'English');
insert into YourTable values('John', 'French');
insert into YourTable values('John', 'Spanish');
insert into YourTable values('John', 'Swedish');
insert into YourTable values('Mark', 'English');
insert into YourTable values('Mark', 'French');
insert into YourTable values('Mark', 'Spanish');
insert into YourTable values('Peter', 'English');
insert into YourTable values('Peter', 'French');
查詢1:
select T1.Name
from YourTable T1
inner join YourTable T2
on T1.Lang = T2.Lang
where T2.Name = 'Mark'
group by T1.Name
having count(T1.Lang) = (select count(Lang)
from YourTable
where Name = 'Mark')
Results:
| NAME |
--------
| John |
| Mark |
你可以精確的SQL風格? –
它在Oracle內如此SQL Plus,但我寧願保持它儘可能基本,所以我寧願不要任何PL SQL – SalmonMode
你有什麼能夠唯一標識每個用戶嗎?這可以做,但沒有它的結果將是無用的。 – itsbruce