select * from a where a.a0 exists( select b.b0 from b where b.b1>5)
或者这样
select * from a join ( select b.b0 from b where b.b1>5) bb
on a.a0=b.b0
是这样的
有b.b1>5的数据?
没有数据,但是我想显示a表的数据
应该就是一个左连接或右连接吧
形如:select B.X,A.X
from A left join B ON A.ID=B.ID
where 条件
where条件我想只限定b表,不影响a表的输出
你要显示a表的数据 这样就可以了,不用where了
@逗号s: 我的意思是要么没有b表的结果,要么有b表加上where条件的结果,
select a.id,a.name,a.age from table1 a left join table2 b on a.id=b.id
@ffedu: 那你也可以在left join后面加条件。
你动手试试就知道了,没有什么难的。
@逗号s: 试了试不行,比如说每个月平均气温,要显示1-12月高于20度的月份和温度,同时显示低于20度月份和空白,left join加条件后,就只剩下高于20度的月份了。
@Albert Fei: 试了试和(+)连接查询好像一样的结果
Select month,
Case
When temperature>20 then ‘温度大于20’
When temperature<20 then ‘温度小于20’ End 温度
from table
我没数据库,没测试,你自己看看吧 ,用这应该能弄出来
@逗号s: 我晕,,,,select a.a0,a.a1,b.b1 from a.b where a.a0=b.b0 and b.b1>20
我想要a.a0,a.a1的全部结果,以及b.b1的部分结果(b1>30)
a表1,1/2,2/3,3/4,4/5,5
b表1,10/2,20/3,30/4,40/5,50
希望的结果
1,10
2,20
3,30
4,
5,
@ffedu: 我说的是“条件”写在不同地方,是不是一样的结果
你想要什么样的结果,就加什么样的“条件”,让你试试加什么样的条件适合你的需求。
hao gao