[英]Comparing 1 column of non-unique values to another column of non-unique values
不确定如何正确询问它,因此我将尝试对其进行可视化。 我有2列,可以说一个是名字,两个名字重复(一对Johns,一些Lukes,等等)。 另一列是很多语言,但只有少数几种(法语,西班牙语,英语等)。 基本上,每个人都可以使用多种语言。
我试图找出是否给出名字,我可以确定其他人与原始人所使用的所有语言相关联。 举例来说,马克(Mark)懂法语和西班牙语。 以此为基础,我将尝试找出还有谁会说法语和西班牙语。 因此,如果杰里米知道法语,西班牙语和德语,他就会出现在结果中。
有任何想法吗?
到目前为止,我有
accept nameIn prompt 'Search for:'
select name from sc16temp intersect (select lang from sc16temp where name='&nameIn');
看起来您想要带提醒的关系划分 。
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')
结果 :
| NAME |
--------
| John |
| Mark |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.