[英]SQL Server 2008 - Inner join
早上好,
我使用SQL Server 2008,我在App#上加入了2个表
T2的结构是,它具有以下值:
App # code
---------------
123 8
123 16
123 32
124 16
125 8
125 16
我只需要打印代码为16的应用程序。我的代码如下:
Select appID, Code from T1
Inner join T2 on
T1.AppID = T2.AppID and Code = 16
但是我得到的结果包括应用#123,124和125,但我只需要显示124(我只需要提取代码为16而不是其他内容的应用。)
谢谢你的帮助乔
SELECT T1.appID
FROM T1
JOIN T2
ON T2.AppID = T1.AppID
AND T2.Code = 16
WHERE NOT EXISTS
( SELECT *
FROM T2
WHERE T2.AppID = T1.AppID
AND T2.Code <> 16
) ;
这也应该有效; 这是Sql-Demo
select T2.appId,code
from T2 join T1 on T2.appId = T1.appId
where code = 16 and
T2.appId not in (select appId from T2 where code != 16)
请尝试在哪里的条件
select appId, code from (
select T2.appId, code, count(*) over (partition by T2.appId) CNT
from T2 join T1 on T2.appId = T1.appId
where code=16
)x where CNT=1
或者使用具有相同的功能
select
T2.appId, code
from T2 join T1 on T2.appId = T1.appId
where code=16
group by T2.appId, code
having count(T2.appID)=1
在选择statment的condtion 就是不和
尝试这一个
Select appID, Code from T1
Inner join T2 on
T1.AppID = T2.AppID
where t1.code=16
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.