2013-03-03 88 views
2

如何創建一個視圖來合併來自兩個不同表格的不同所有列。MySQL創建視圖加入兩個整個表格

CREATE VIEW listView 
AS 
SELECT * FROM tab1 h LEFT JOIN tab2 b 
ON h.tID=b.tID 
WHERE value = 0 

這給我的錯誤:

Duplicate column name 'tID'

有沒有一種方法來連接兩個表沒有列出所有的值來選擇?

回答

2

這兩個表格包含列tID。爲了編譯VIEW,您需要在該列上創建一個別名,或者只需指定一個tid和表格的來源。

一種解決方案:

SELECT h.TID, -- and not specifying b.TID 
FROM tab1 h LEFT JOIN tab2 b ON h.tID=b.tID 

另一種解決方案:提供一個別名,

SELECT h.TID as H_TID, 
     b.TID as B_TID 
FROM tab1 h LEFT JOIN tab2 b ON h.tID=b.tID 
+1

我用H *從一個表中選擇所有列和。然後是第二個表中的colomns的別名 – user2129160 2013-03-03 16:42:23

0

你需要這樣指定,而不是使用*列名和別名,然後你的專欄:

SELECT h.tId, b.tId as BTId 

你不能有相同的名字兩次 - 因此你上面的錯誤。

0

嘗試這種情況:

CREATE VIEW listView 
AS 
SELECT 
    a.tID as a_tID, 
    b.tID as b_tID, 
    a.anothercolumn as a_anothercolumn, 
    b.anothercolumn as b_anothercolumn 
FROM tab1 a 
JOIN tab2 b ON a.tID=b.tID 
WHERE a.value = 0;