MySQL创建视图连接两个完整的表
Posted
技术标签:
【中文标题】MySQL创建视图连接两个完整的表【英文标题】:MySQL create view joining two whole tables 【发布时间】:2013-03-03 16:24:27 【问题描述】:如何创建一个视图来合并来自两个不同表的所有不同列。
CREATE VIEW listView
AS
SELECT * FROM tab1 h LEFT JOIN tab2 b
ON h.tID=b.tID
WHERE value = 0
这给了我错误:
重复的列名“tID”
有没有办法在不列出所有要选择的值的情况下连接两个表?
【问题讨论】:
【参考方案1】:这两个表包含列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
【讨论】:
我使用 h.* 从一个表中选择所有列,然后为第二个表中的列选择别名【参考方案2】:试试这个:
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;
【讨论】:
【参考方案3】:您需要指定列名而不是使用 *,然后像这样为您的列设置别名:
SELECT h.tId, b.tId as BTId
您不能两次使用相同的名称 - 因此出现上述错误。
【讨论】:
以上是关于MySQL创建视图连接两个完整的表的主要内容,如果未能解决你的问题,请参考以下文章