创建视图:mysql内部连接别名

gkl3eglg  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(380)

我正在尝试在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\u id创建一个别名,但我不知道如何使用 INNER JOIN ...

INNER JOIN `table_A` ON table_A.profil_id = p.id AS table_A_profil_id

不起作用。
谢谢你的帮助。

z9ju0rcb

z9ju0rcb1#

您可以使用以下选项:

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

相关问题