復雜查詢可能出現異常類似於,有時你可能是在創建視圖,也可能會出現下面的錯誤:
Code: 352. DB::Exception: Received from localhost:9000. DB::Exception: Cannot refer column '表名.字段名' to table.
首先clickhouse 在當前版本(version 19.17.4.11)中不支持exists用法,如果遇到了exists用法,應該把它改為in的語法.
因為查詢語句比較復雜,這個整體的復雜查詢語句可以在mysql中查詢, 其中的部分嵌套語句也可以在mysql和clickhouse中查詢.
但是整體的復雜查詢卻不能在clickhouse中查詢,會報上面提示的錯誤.
其中內部的嵌套查詢用了多個表的join 和 inner join 條件用的 on (表名.列名 = 表名1.列名1) 等多表連接
最后的解決方案:
將內部的查詢單獨取出來創建一個單獨的小視圖.
然后
把原來的整體的復雜查詢中內部嵌套的查詢替換為這些小視圖,這個整體的復雜查詢語句就會變得簡單,再運行這個查詢,就不會再報這個錯誤了.