我希望即使b表没有符合条件的记录,结果应该显示成:字段:member,value,memo 值: li 2 wang 3 mao 4 ------------------- 很难达到吗?谢谢!
你看了没有,有没有执行过,你那个member会报错的 lucky_boy18() 已经给出了 不过应该是 b.member=a.member where a.memo='ww'
我改成on b.member=a.member where a.memo='ww',结果什么都没有 如果我把条件改成 where b.memo='yy',它就只显示一条记录 即: member,value,memo wang 3 yy而我需要的是,即使有部分满足,也应该显示为: member,value,memo li 2 wang 3 yy mao 4
既然限制了where,又怎么能让没有结果的东西显示出来呢?除非去掉限制。
你的要求似乎和memo='ww'的条件一点关系也没有
select a.member,a.value,b.memo from a left join b on b.member=a.member
那是不是说如果要达到我的这种要求,就只有不写where条件?或者写成2条sql语句?
select a.member, a.value, if(b.memo='yy','yy','') as memo from a left join b on a.member=b.member或者select a.member, a.value, ifnull(x.memo,'',x.memo) as memo from a left join ( select * from b where memo='yy' ) x on a.member=x.member
那如果表a结构不变,表b结构如下: 字段:member,memo,phone, color 值: li xx 111 red wang yy 222 blue mao zz 333 red条件改为color="red",无论b表满足与否,a表的member字段,b表的memo和phone字段都要显示,sql语句该怎么写? 谢谢!
即显示结果要求这样:字段: member, value, memo, phone 值: li 2 xx 111 wang 3 mao 4 zz 333
不是一样吗?select a.member, a.value, ifnull(x.memo,'',x.memo) as memo, ifnull(x.phone,'',x.phone) from a left join ( select * from b where color='red' ) x on a.member=x.member
select a1.member,a1.value,b1.memo from a a1 left join b b1 using(member) on b1.memo='ww'这样行不行?where好像要去找对应的值,on好像是去找对应的行。
如果不行,这样试试 select a1.member,a1.value,b1.memo from a a1 left join b b1 using(member) on a1.memo='ww'
回wasuka(迦罗娜:潜行的诡计与研究): 我用using(member)来连接2个表,如果b表中没有满足where条件的记录,那不是应该显示为null吗?表a的字段应该全部显示才对啊?
值: li 2
wang 3
mao 4
-------------------
很难达到吗?谢谢!
lucky_boy18() 已经给出了 不过应该是 b.member=a.member where a.memo='ww'
如果我把条件改成 where b.memo='yy',它就只显示一条记录
即:
member,value,memo
wang 3 yy而我需要的是,即使有部分满足,也应该显示为:
member,value,memo
li 2
wang 3 yy
mao 4
from a left join b
on a.member=b.member或者select a.member, a.value, ifnull(x.memo,'',x.memo) as memo
from a left join
( select * from b where memo='yy' ) x
on a.member=x.member
字段:member,memo,phone, color
值: li xx 111 red
wang yy 222 blue
mao zz 333 red条件改为color="red",无论b表满足与否,a表的member字段,b表的memo和phone字段都要显示,sql语句该怎么写?
谢谢!
值: li 2 xx 111
wang 3
mao 4 zz 333
ifnull(x.memo,'',x.memo) as memo, ifnull(x.phone,'',x.phone)
from a left join
( select * from b where color='red' ) x
on a.member=x.member
select a1.member,a1.value,b1.memo from a a1 left join b b1 using(member) on a1.memo='ww'