MySQL 1054錯誤 Unknown column .... in 'on clause'

ERROR 1054 (42S22): Unknown column ... in 'on clause'

 

緣由:mysql

 

MySQL5.0 Bug, 要把聯合的表用括號包含起來才行:sql

 

:spa

 

Sql代碼   收藏代碼
  1. SELECT (c.id, a.id, b.id) FROM A a, B b LEFT JOIN C c ON c.a_id = a.a_id AND c.b_id = b.b_id  

這句話執行應該是沒有錯誤的,可是Mysql 5 下執行則會出錯。blog

 

由於mysql下有這樣一個BUG,要把聯合的表用括號包含起來才行:get

 

Sql代碼   收藏代碼
  1. SELECT (c.id, a.id, b.id) FROM (A a, B b) LEFT JOIN C c ON c.a_id = a.a_id AND c.b_id = b.b_id  

可是HQL生成就是這樣的語句,怎麼辦呢?咱們能夠改變HQL的寫法來達成生成另外一種SQL語句,以免這種BUG的出錯it

把select (c.id, a.id, b.id) from C c Left join c.a a Left join c.b bio

則會生成class

 

Sql代碼   收藏代碼
  1. SELECT (c.id, a.id, b.id) FROM A a LEFT JOIN B b LEFT JOIN C c ON c.a_id = a.a_id AND c.b_id = b.b_id  

 

這樣的話mysql下就不會出錯了。stream

相關文章
相關標籤/搜索