2017-10-15 47 views
1

我有一個TABLE和我寫的優秀作品在騙取錢財的查詢,但實際的服務器上實現它的時候,我收到以下錯誤加入多種選擇奎雷斯

1054 - 中未知列「t2.EmpName」'對條款」

小提琴是MySQL的5.6,我跑版本15.1 MariaDB的

感謝您的幫助!這裏是我的查詢:

select 
    table1.EmpName as "Employee", 
    table1.weekof as "Week Of", 
    t2.pph as "Previous PPH", 
    table1.pph as "Current PPH", 
    table1.quality as "Quality" 
from table1 t2 
join 
table1 on t2.EmpName = table1.EmpName 
where t2.weekof = '9/11/2017' and table1.weekof = '9/18/2017' 
+0

它適用於rextester了。 [看](http://rextester.com/AZAR18277) – GurV

+1

我想你沒有一個名爲'empName'的列 – sagi

+0

我不知道它爲什麼不起作用,但是你的ON子句在t2.EmpName上= table1.EmpName'有氣味。只需使用'ON t1.EmpName = t2.EmpName',並用't1'和't2'將表格別名。 MySQL會吞下很多糟糕的代碼並仍然運行,但是你不應該依賴這個。 –

回答

0

可能是你有beetween在sqlfiddle代碼,您正在使用的服務器 上反正更好的可讀性和避免mismacth代碼中的一些區別,我建議你一個更清晰的使用別名(expecially當您使用自聯接)
,當你需要如不使用的列名使用backctics報價:

select 
    t1.EmpName as Employee, 
    t1.weekof as `Week Of`, 
    t2.pph as `Previous PPH`, 
    t1.pph as `Current PPH`, 
    t1.quality as Quality 
    from table1 t2 
    join table1 t1 on t2.EmpName = t1.EmpName 
    where t2.weekof = '9/11/2017' and t1.weekof = '9/18/2017' 
    ; 
+0

謝謝!那就是訣竅。 –