4

如何创建一个视图来合并来自两个不同表的不同所有列。

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

这给了我错误:

重复的列名“tID”

有没有办法在不列出所有要选择的值的情况下加入这两个表?

4

3 回答 3

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 
于 2013-03-03T16:25:51.317 回答
1

试试这个:

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;
于 2013-03-03T16:26:27.007 回答
0

您需要指定列名而不是使用 * ,然后像这样为您的列设置别名:

SELECT h.tId, b.tId as BTId

您不能两次使用相同的名称-因此出现上述错误。

于 2013-03-03T16:25:06.110 回答