大家帮看两个字段作为条件的IN,NOT IN语句如何表示

XTMENG 2009-07-31 04:35:23
如表A(X,Y,Z),B(X,Y,Z)

想把A表X,Y字段同时出现在B表的显示出来,


可以这样表示吗

select * from A where (X,Y) in (select X,Y from B group by X,Y)

我用以上语句什么都没显示出来,实际数据是有的
...全文
659 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiequan2 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 xtmeng 的回复:]
如表A(X,Y,Z),B(X,Y,Z)

想把A表X,Y字段同时出现在B表的显示出来,


可以这样表示吗

select * from A where (X,Y) in (select X,Y from B group by X,Y)

我用以上语句什么都没显示出来,实际数据是有的
[/Quote]ansi支持被称为行值构造器的语法,它允许你简化像上面的查询。利用该语法,你可以指定属性向量和表达式以避免为每个属性单独执行子查询,但是t_sql到目前为止还不支持该语法;
zjb211434 2009-07-31
  • 打赏
  • 举报
回复
语法错误
狼王_ 2009-07-31
  • 打赏
  • 举报
回复

create table A(X INT,Y INT,Z INT)
INSERT A
SELECT 3,3,22 UNION ALL
SELECT 1,4,33 UNION ALL
SELECT 4,25,6
create table B(X INT,Y INT,Z INT)
INSERT B
SELECT 3,3,2 UNION ALL
SELECT 1,4,3 UNION ALL
SELECT 4,5,6
SELECT A.* FROM A,B WHERE A.X=B.X AND A.Y=B.Y
--结果
X Y Z
3 3 22
1 4 33
feixianxxx 2009-07-31
  • 打赏
  • 举报
回复
ni那种写法 语法不支持。。
看ls都是正解
--小F-- 2009-07-31
  • 打赏
  • 举报
回复

select
*
from
a t
where
exists(select 1 from b where x=t.x and y=t.y)
sdhdy 2009-07-31
  • 打赏
  • 举报
回复
select * from ta a where exists(select 1 from tb where x=a.x and y=a.y)
guguda2008 2009-07-31
  • 打赏
  • 举报
回复
X,Y必须在同一行的话:
SELECT * FROM A WHERE EXISTS(SELECT 1 FROM B WHERE B.X=A.X AND B.Y=A.Y)
不是的话就改成OR
水族杰纶 2009-07-31
  • 打赏
  • 举报
回复
select * from a t where exists(select 1 from b where x=t.x and y=t.y)
百年树人 2009-07-31
  • 打赏
  • 举报
回复
select * from A where exists(select 1 from B where X=A.X AND Y=A.Y) 
jwdream2008 2009-07-31
  • 打赏
  • 举报
回复
select * from A ,B where A.X=B.X And A.Y=B.Y
SQL77 2009-07-31
  • 打赏
  • 举报
回复
SELECT A.* FROM A JOIN B ON A.X=B.X AND A.Y=B.Y

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧