同表查询求交集...

来源:百度知道 编辑:UC知道 时间:2024/06/18 11:56:28
例如我有一个表abc,ID为主键:
ID code NAME
1 t01 gz
2 t01 wh
3 t01 cs
4 t01 bj
5 t02 gz
6 t02 zz
7 t02 wh
8 t02 sh
9 t03 gz
10 t03 qhd
11 t03 cq

我的问题是:
例如,我通过查NAME="gz",得到t01,t02和t03;然后再通过查NAME="wh",得到t01和t02.然后再求它们的交集,得出code的值为t01和t02.

SQL查询语句:

select code from abc where name='gz'
and code in (select code from abc where name='wh')

这是把其中一个作为子查询,或者可以这样写:

select a.code from abc a inner join abc b on a.code=b.code
where a.name='gz' and b.name='wh'

这是把一个表查询两次,再用内连接求出交集

SELECT a.code
FROM (SELECT code FROM abc WHERE NAME = 'gz') a,
(SELECT code FROM abc WHERE NAME = 'wh') b
WHERE a.code = b.code