关于MySql的JOIN语法问题

图片说明
图片说明
图片说明

需要获取两个对应字段

on条件里单个写jx或者reward都是查的到的,但是两个一起写就会报错。

请教大神如何改写。

2个回答

sql写的很是不规范,表连接条件上不加表名么?jx_type 和reward_type 在表里存的是一样的值么?如果是一样的,那你加上就是多此一举,如果不是一样的,更不能这么写,还有jx_type 和reward_type是在dic_detail表里是么?

weixin_36946127
sleepySnail 回复qq_43452183:你要弄清楚关系是啥 是不是 或者关系 或则 要用 or , a =c or b = c
12 个月之前 回复
qq_43452183
qq_43452183 回复weixin_36946127: 那该怎么改写,还是说只能写两个select来取值
12 个月之前 回复
weixin_36946127
sleepySnail 回复qq_43452183: 存的值不一样你这就是写错了,你让 2=2可以,你让2=2 并且 1=2 这条件能成立么?
12 个月之前 回复
qq_43452183
qq_43452183 加上表名也是这个错误。存的值不一样,你看后两张图显示出来的都不一样。这两个字段在在performance里,对应的dic_detail表里叫dicCode
12 个月之前 回复

可以用两种方法
1. 把on后面另一个条件放到where中去;
2. 把on后面两个条件之间的逗号去掉,如果两个条件都需要满足的话,就在俩条件中间加and,否则加or

msx985211
写程序的项目经理 回复qq_43452183: 那就没有符合条件的呗
12 个月之前 回复
qq_43452183
qq_43452183 and试过了,那样取出来的所有字段都是null
12 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!