2013-11-04 40 views
0

我已經創建了一個SQL查詢視圖:錯誤而顯示查看SQL

CREATE VIEW rightview 
AS 
SELECT data.accounts.login,data.accounts.password,data.customers.right_ 
FROM data.accounts join data.customers using (id); 

當我cliick上執行查詢,則表明視圖創建成功。但是,當我嘗試這個查詢

select * from data.rightview; 

,以顯示其列,我得到這個錯誤:

Error code 1356, SQL state HY000: View 'data.rightview' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

+3

像消息一樣,您試圖引用不存在的表或列。仔細檢查名稱是否正確。嘗試在創建視圖之前執行SELECT查詢 –

回答

0

恕我直言更好的是:

CREATE VIEW rightview 
AS 
SELECT acc.login, acc.password, cust.right_ 
FROM data.accounts acc 
LEFT JOIN data.customers cust on acc.id=cust.id 

如果表的客戶包括列編號是參照表帳戶...

+0

與肯塔的查詢我得到一行充滿登錄名和密碼,但正確的爲空 –

+0

如果您有「主」表,請使用左連接。 左連接將錶行和列附加到主表中。所以如果你有兩行的表A和兩行的表B屬於表A的一行,你可以把3行合在一起。第一行將是A1 + B1,第二個A1 + B2和第三個僅A2 + null 另一方面,如果您有兩個表,並且您需要選擇行,則在兩個表中都會影響JOIN。 – MartinB

0

嘗試使用表的別名

CREATE VIEW rightview 
AS 
SELECT account.login,account.password,customer.right_ 
FROM data.accounts as account join data.customers as customer using (id); 

select * from rightview; 
+0

感謝Madhivanan爲您的答案我可以看到列的視圖,但它們是空的 –

+0

這意味着沒有與表 – Madhivanan

+0

匹配的行怎麼辦?這就是我的表格的樣子: –

0

Try this one..

CREATE VIEW rightview 
AS SELECT a.login,a.password,b.right_ 
FROM accounts a INNER JOIN customers b 
on a.id = b.id; 

then,

select * from rightview; 

will work..

0

我得到了同樣的錯誤。我解決了原始數據庫中原始視圖中的所有代碼,並將其粘貼到創建其他視圖的bkp_db中...