2012-10-31 28 views
2

我想從我創建的視圖中選擇某些值。聲明低於:從視圖中選擇使用Where子句來引用另一個數據庫 - 未知列錯誤

SELECT * FROM dashboard.team 
WHERE ac2012.acx_users.id = 1; 

正如你所看到的,這裏有被引用2個數據庫:

  1. 儀表板的數據庫,團隊表
  2. ac2012數據庫,acx_users.id表

ac2012.acx_users.id是原始創建視圖語句中的正則表達式,我使用它,因爲我當然不能在Where子句中使用ALIAS ...但是,這顯示了n錯誤:

Error Code 1054: Unknown column 'ac2012.acx_users.id' in 'where clause' 

我不知道如何得到這個工作,因爲我需要參考其他數據庫在這種情況下,但它無法識別數據庫。任何提示將不勝感激。

+0

有一個'.'列名? – diEcho

+0

做''tablename''。 '''列名'' – diEcho

+0

不,儀表板是數據庫,團隊就是表格。 ac2012是數據庫,acx_users是表,id是列名 –

回答

2

由於您從視圖中進行選擇,底層數據庫不再可見。您只能看到視圖呈現的內容,作爲視圖所在的數據庫的一部分,因此請嘗試WHERE acx_users.id = 1,或嘗試在視圖定義中將該字段視爲別名。

+0

我嘗試使用別名:WHERE'用戶ID'= 1,但它沒有返回任何結果,即使我看到很多條目,其中該列的值爲1。我的語法正確嗎? –

+2

如果在你的查詢中,這確實是''用戶名'',那麼你實際上正在比較一個** STRING **,其值是'User ID',而不是字段名。字段名稱使用反引號進行轉義,而不是單引號。單引號中的任何內容都只是一個字符串,而不是表格/字段/任何值。 –

+0

就是這樣 - 謝謝! –

0
SELECT * FROM dashboard.team 
    LEFT OUTER JOIN ac2012 ON ac2012.CommonColumnName=dashboard.CommonColumnName 
    WHERE ac2012.acx_users.id = 1; 

======================
請按原來的列名替換...

相關問題