mysql - 在 mysql 中连接两个表时出现错误,如 "Unknown column ' m.machinenumber' in 'on clause' "?

标签 mysql sql join

enter image description here enter image description here连接两个表时,我执行了一个查询,但它没有正确显示第二个表数据,而是显示垃圾值..

我使用的查询是,

select p.machinenumber,
max(case when (p.shift)=1 then xxxx end) s1_xxxx,
max(case when (p.shift)=2 then xxxx end) s2_xxxx,
avg(case when (p.shift)=1 then yyyy end) s1_yyyy ,
avg(case when (p.shift)=2 then yyyy end) s2_yyyy 
from pdata p
inner  join (select  count(case when (shift)=1 and (ename)=1  then ename end) s1_wa,
count(case when (shift)=1 and (ename)=2 then errorname end) s1_we,
count(case when (shift)=2 and (ename)=1 then errorname end) s2_wa,
count(case when (shift)=2 and (ename)=2 then ename end) s2_we,
count(case when (shift)=1 and (ename)=0 then ename end) s1_merror,
count(case when (shift)=2 and (ename)=0 then ename end) s2_merror  from mstop)m
on p.mnumber=m.mnumber
where date(p.proddate)='2013-02-25'; 

请解决这个问题??

最佳答案

您还需要为 m.mnumber 返回 mnumber。在 mstop 表的内部连接中,您还需要返回 mnumber 以便根据 mnumber 连接它。

inner  join (select  count(case when (shift)=1 and (ename)=1  then ename end) s1_wa,
count(case when (shift)=1 and (ename)=2 then errorname end) s1_we,
count(case when (shift)=2 and (ename)=1 then errorname end) s2_wa,
count(case when (shift)=2 and (ename)=2 then ename end) s2_we,
count(case when (shift)=1 and (ename)=0 then ename end) s1_merror,
count(case when (shift)=2 and (ename)=0 then ename end) s2_merror,
     mnumber  from mstop)m
on p.mnumber=m.mnumber

关于mysql - 在 mysql 中连接两个表时出现错误,如 "Unknown column ' m.machinenumber' in 'on clause' "?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15152036/

相关文章:

java - 通过Java备份MySQL

php - 使用 CodeIgniter 在表中显示数组结果时出现问题

php - Ajax PHP 实时搜索 - 需要第二步

php - 对mysql中多个用户拥有的记录进行计算

php - 拉拉维尔。两个表的 Eloquent 查询

java - 使用 Hibernate 删除父行时如何删除所有子行?

mysql - SQL 查询 : difference in condition in On clause and where clause

sql-server - 使用 COALESCE FULL OUTER JOIN 复制行

mysql - mysql中一组行的累计和

javascript - .join 方法是否将数组更改为 Javascript 中的字符串?