首页 新闻 搜索 专区 学院

在线等mysql问题

0
悬赏园豆:20 [已关闭问题] 关闭于 2016-08-01 14:47

select
bc_id as id,
kbci.card_num as cardNum,
kbci.staff_num as staffNum,
ksi.staff_name as staffName
from
kc_bound_card_info kbci
left join kc_staff_info ksi
on
kbci.staff_num=ksi.staff_num
left join kc_card_info kci
on
kbci.card_num=kci.card_num
where kci.state_dm='20'

这个sql语句存在语法错误什么的吗,大神求助,在线等

问题补充:

在数据库中执行,没有返回结果

有没大神比较懂sql语句的左右连接问题啊,

黑子菜园的主页 黑子菜园 | 初学一级 | 园豆:62
提问于:2016-07-16 16:17
< >
分享
所有回答(3)
0

有没有报错什么的,bc_id 这个是哪个表的。还有你单独查询每个表看看对应的 on关联的字段有没有数据。

剧里局外 | 园豆:11 (初学一级) | 2016-07-16 17:13
0

没问题的吧,你看看是不是数据原本就空。左连接通俗讲就是进行连接时,左边所有的数据都保留,也就是当左边有值右边没有的话,右边保留空值

胖胖的半山兄 | 园豆:240 (菜鸟二级) | 2016-07-16 20:35
0

你最后的where子句里面有右表的字段约束,这样的语句只会返回kc_card_info表里面有的数据,你把where子句的条件放到on里面去试试

select 
bc_id as id,
kbci.card_num as cardNum,
kbci.staff_num as staffNum,
ksi.staff_name as staffName
from
kc_bound_card_info kbci
left join kc_staff_info ksi
on
kbci.staff_num=ksi.staff_num
left join kc_card_info kci
on
kbci.card_num=kci.card_num
and kci.state_dm='20'

这样试试行不行

风归云隐 | 园豆:416 (菜鸟二级) | 2016-07-19 10:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册