我正在尝试在MySQL中创建视图,但是发生了错误: Duplicate column name 'profil_id'
这是我的要求:
CREATE VIEW my_view
AS SELECT * FROM `profils` AS `p`
INNER JOIN `table_A` ON table_A.profil_id = p.id
INNER JOIN `table_B` ON table_B.profil_id = p.id
WHERE p.id = '1';
我知道这是因为我必须为profil_id创建一个别名,但我不知道如何用INNER JOIN
来弄清楚......
INNER JOIN `table_A` ON table_A.profil_id = p.id AS table_A_profil_id
不工作。
谢谢你的帮助。
您可以使用
以下内容:
CREATE VIEW my_view AS
SELECT `p`.*, `table_A`.`profil_id` AS table_A_profil_id, `table_B`.`profil_id` AS table_B_profil_id
FROM `profils` AS `p`
INNER JOIN `table_A` ON table_A.profil_id = p.id
INNER JOIN `table_B` ON table_B.profil_id = p.id
WHERE p.id = '1';
在这种情况下不能使用*
,因为INNER JOIN
两个具有相同列名的表。您需要列出这两个表的列,并为重复的列名设置别名。