我正在尝试在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
不起作用。
感谢您的帮助。
答案 0 :(得分:1)
您可以使用以下内容:
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
两个具有相同列名的表。您需要列出这两个表的列,并为重复的列名设置别名。