2013-03-03 87 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;