SQL 中的重复列名
Duplicate column name in SQL
我想在我的 sql 中创建一个视图,但我一直收到此错误:
Duplicate column name 'product_id'
这是我的查询:
CREATE VIEW product_view AS
SELECT
*
FROM
products
JOIN storeitems on products.product_id = storeitems.product_id;
我相信创建别名可以解决问题,但我不知道该怎么做。我希望你能帮我解决这个问题。谢谢!
是的,创建列别名可以解决问题,您可以这样做
select column1 as test_column
但如果这是您的原始查询,那么我怀疑您不会收到此错误,因为您是从名为 products
的单个 table 中进行选择,显然相同的 table 不会有具有相同名称的多个列。
无论如何你可以修改你的查询像
CREATE VIEW product_view AS
SELECT p.product_id as product_product_id,
si.product_id as storeItem_product_id
FROM
products p
JOIN storeitems si on p.product_id = si.product_id;
可能 products
table 和 storeitems
table 都有一个名为 product_name
.
的列
CREATE VIEW product_view AS SELECT * FROM products p JOIN storeitems si on p.product_id=si.product_id;
此处 p
将是 products
table 的别名,而 si
将是 storeitems
table[= 的别名18=]
如果你的数据库支持using
子句并且你只有一个重复的列名,那么你可以这样做:
select *
from products p join
storeitems si
using (product_id);
不过,总的来说,我认为最好在视图中列出列。如果其中一个基础表更改了列的顺序或名称,那么这会更安全。
您收到错误是因为查询中的两个表都有一个名为 product_name 的列,并且所选列名称必须是唯一的。
你的别名是这样的:
CREATE VIEW product_view AS SELECT p.product_name, si.product_name StoreItemsProductName -- continue with what you want to select...
FROM products p JOIN storeitems si
on p.product_id=si.product_id;
我想在我的 sql 中创建一个视图,但我一直收到此错误:
Duplicate column name 'product_id'
这是我的查询:
CREATE VIEW product_view AS
SELECT
*
FROM
products
JOIN storeitems on products.product_id = storeitems.product_id;
我相信创建别名可以解决问题,但我不知道该怎么做。我希望你能帮我解决这个问题。谢谢!
是的,创建列别名可以解决问题,您可以这样做
select column1 as test_column
但如果这是您的原始查询,那么我怀疑您不会收到此错误,因为您是从名为 products
的单个 table 中进行选择,显然相同的 table 不会有具有相同名称的多个列。
无论如何你可以修改你的查询像
CREATE VIEW product_view AS
SELECT p.product_id as product_product_id,
si.product_id as storeItem_product_id
FROM
products p
JOIN storeitems si on p.product_id = si.product_id;
可能 products
table 和 storeitems
table 都有一个名为 product_name
.
CREATE VIEW product_view AS SELECT * FROM products p JOIN storeitems si on p.product_id=si.product_id;
此处 p
将是 products
table 的别名,而 si
将是 storeitems
table[= 的别名18=]
如果你的数据库支持using
子句并且你只有一个重复的列名,那么你可以这样做:
select *
from products p join
storeitems si
using (product_id);
不过,总的来说,我认为最好在视图中列出列。如果其中一个基础表更改了列的顺序或名称,那么这会更安全。
您收到错误是因为查询中的两个表都有一个名为 product_name 的列,并且所选列名称必须是唯一的。
你的别名是这样的:
CREATE VIEW product_view AS SELECT p.product_name, si.product_name StoreItemsProductName -- continue with what you want to select...
FROM products p JOIN storeitems si
on p.product_id=si.product_id;