SELECT *
FROM t1
WHERE EXISTS
(
SELECT *
FROM t2
WHERE t1.signID=t2.signID
AND t2.s1='22'
)
FROM t1
WHERE EXISTS
(
SELECT *
FROM t2
WHERE t1.signID=t2.signID
AND t2.s1='22'
)
解决方案 »
- datediff 函数,让如何让结果加上汉字呢?
- 一个SQL2000表的列达到上限是否会影响效率呢
- 谁能烁烁给主键命名的好处?
- 在sql server2005中查询表的字段的备注(说明),为什么会报错误呢: 对象名 'sysproperties' 无效。如何解决?
- 帮忙写写这个数量分配的sql
- 求助-Sqlserver2000的一个莫名其妙的问题
- SQL标准版升级到企业时,报错“native client 证书。。。”问题,无法升级,如何解决?
- 求sql(如何斷定一個表中沒有age這個字段)
- 急急急!!!!!!求救!如何将一个表转置,且用时较少
- 已结贴的贴子有人回复了????
- 出大事了,更新一个表的分类数据时,将第三级的数据直接更新到第二级了,没有备份的,有办法,恢复吗?
- mssql数据库复制问题,急
declare @T1 table (id int,signID int,s1 varchar(1))
insert into @T1
select 1,1001,'a' union all
select 2,1002,'b'
--> 测试数据: @T2
declare @T2 table (SignID int,s1 int,s2 int)
insert into @T2
select 1001,11,22 union all
select 1001,22,33 union all
select 1002,33,44 union all
select 1001,22,33
select a.* from @t1 a left join @t2 b on a.signid=b.signid
where b.s2='22'
不过2楼的方法好象在建表前要加上union all,这个在表格的基本结构都定好的情况下,如何才能实现呢?
我那是做的测试数据,你不需要管``
只需要执行语句就行了
--执行这个:
select a.* from t1 a left join t2 b on a.signid=b.signid
where b.s2='22'
id signID(主键) s1
1 1001 a
1 1001 a 我只想要内容相同的一条就可以了,不管t2.s1下面有几个相同的。
--倒,,说了那是建表语句,你根本就不用管。那我写成这样行了吧?---这个只是建立个测试环境,你不用管这个啊。
create table T1(id int,signID int,s1 varchar(1))
insert into T1 select 1,1001,'a'
insert into T1 select 2,1002,'b'
--> 测试数据: T2
create table T2(SignID int,s1 int,s2 int)
insert into T2 select 1001,11,22
insert into T1 select 1001,22,33
insert into T1 select 1002,33,44
insert into T1 select 1001,22,33--只需要执行这个就行了。大哥
select a.* from t1 a left join t2 b on a.signid=b.signid
where b.s2='22'
create table tb_RaisesPays
(
id int,
signID int primary key ,
s1 varchar(10)
)
go
insert into tb_RaisesPays(id,signID,s1) values(1,1001,'a')
insert into tb_RaisesPays(id,signID,s1) values(2,1002,'b')
gocreate table tb_RaisesPays_Detailed
(
SignID int foreign key references tb_RaisesPays(signID),
s1 varchar(10),
s2 varchar(10)
)
go
insert into tb_RaisesPays_Detailed values(1001,'11','22')
insert into tb_RaisesPays_Detailed values(1001,'22','33')
insert into tb_RaisesPays_Detailed values(1001,'33','44')
insert into tb_RaisesPays_Detailed values(1001,'22','44')
goselect Main.* from tb_RaisesPays Main
left join tb_RaisesPays_Detailed Detailed
on Main.signID=Detailed.signID
where Detailed.s1='22'
go