如何创建一个视图,合并来自两个不同表的不同所有列。
CREATE VIEW listView
AS
SELECT * FROM tab1 h LEFT JOIN tab2 b
ON h.tID=b.tID
WHERE value = 0
这给了我错误:
重复列名'tID'
有没有办法连接两个表而不列出要选择的所有值?
答案 0 :(得分:3)
这两个表包含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 :(得分:0)
您需要指定列名而不是使用*,然后像这样对列进行别名:
SELECT h.tId, b.tId as BTId
你不能两次使用相同的名字 - 因此你的错误就在上面。
答案 2 :(得分: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;