我有一个表,其中每个地址有不同的类型,每种类型一行。如何找到我需要的确切类型的地址?TSQL - 多行查询多种类型
例如,
ID TypID Street
1 1 Street 1
1 2 Street 1
2 2 Street 2
3 1 Street 3
3 2 Street 3
在上述我需要找到其具有1型和2即查询结果应当由id
id为1和3。
我有一个表,其中每个地址有不同的类型,每种类型一行。如何找到我需要的确切类型的地址?TSQL - 多行查询多种类型
例如,
ID TypID Street
1 1 Street 1
1 2 Street 1
2 2 Street 2
3 1 Street 3
3 2 Street 3
在上述我需要找到其具有1型和2即查询结果应当由id
id为1和3。
组不会忽略地址,然后在计数不同typeid
小号在having
条款
select id from your_table
where typeid in (1,2)
group by id
having count(distinct typeid) = 2
您可以使用INTERSECT这个
select id
from tbl
where typid = 1
intersect
select id
from tbl
where typid = 2
虽然它不会在mysql中工作,如果这恰好是您正在使用的数据库。
这是可以做到与内部联接,如下面
select y2.*
from <your_table> Y1
JOIN <your_table> Y2
ON Y1.ID = Y2.ID
AND Y1.Type_id in (1,2)
AND Y2.ID in (1,3)
感谢您的回应。 Juergen d已经发布在你和他的代码为我工作,所以我投你一票。 – sysboard
感谢,但@sysboard它的工作它不以某种方式工作... – sysboard
,你可以看到这里的http:// sqlfiddle。 com /#!6/6abff/1/0。也许你实际上并没有使用SQL Server并使用不同的数据库? –