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语句的左右连接问题啊,
有没有报错什么的,bc_id 这个是哪个表的。还有你单独查询每个表看看对应的 on关联的字段有没有数据。
没问题的吧,你看看是不是数据原本就空。左连接通俗讲就是进行连接时,左边所有的数据都保留,也就是当左边有值右边没有的话,右边保留空值
你最后的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'
这样试试行不行