select * from
app , a , pa
where app.ID = a.APP_ID and a.ID = pa.APPLICATION_ID //报错
Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='
三张表明明都是一个字符集
select * from
app , a ,
where app.ID = a.APP_ID //正常执行
<p>个人建议: 把and换成","试试</p>
<p>条件错了,多表连接,主表与从表连接必须是主表的外键,去连丛表的主键。反了的话,会形成多个数据形成三维表格,当然会报错。</p>
app,a,pa三张表是多对多关系,pa是关系表,那你的查询条件应该是
select app.*,a.* from app,a,pa where app.id = pa.app表主键 and a.id = pa.a表主键
//这样写一定不会报错!已经作测试,下面是在下写的代码和楼主的一模一样没报错。
对,多表不能用*代替,要加表名或者别名作为前缀
<p>看错误提示好像是说字符集不一样,检查表以及字段的字符集吧</p>
<p>字符编码调整一样就好。</p>
1.先把表的数据insert语句保存起来
2.然后表重新建,表接口的字符编码要一样
3.执行insert
4.重新查询理论就ok了。
你的字符集排序不对
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。