创建视图:MySQL内部联接别名

时间:2018-04-16 09:05:47

标签: mysql inner-join alias

我正在尝试在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

不起作用。

感谢您的帮助。

1 个答案:

答案 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两个具有相同列名的表。您需要列出这两个表的列,并为重复的列名设置别名。