错误消息:不是唯一的表/别名MySQL

时间:2013-12-04 19:53:41

标签: mysql table-alias

我正在尝试使用male_id上​​的左连接将butikkdata2中的sap_id插入energy_stage_ext2。

这是我的疑问:

insert into energi_stage_ext2  ( maale_id, maale_date, kwh_t, lev_id, 
                                 konsept, name, slag, sap_id )
select butikkdata2.sap_id 
  from butikkdata2 left join butikkdata2
          ON energi_stage_ext2.maale_id=butikkdata2.maale_id;

但是我收到错误消息:不是唯一的表/别名。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你正在做from butikkdata2 left join butikkdata2,然后你问energi_stage_ext2.maale_id=butikkdata2.maale_id

它如何知道您想要哪个butikkdata2? FROM中的那个或JOIN中的那个?

您需要给一个(或两个)别名。

INSERT INTO energi_stage_ext2 (maale_id, maale_date, kwh_t, lev_id, konsept, name, slag, sap_id)
SELECT bu1.sap_id 
FROM butikkdata2 AS bu1
LEFT JOIN butikkdata2 AS bu2 ON energi_stage_ext2.maale_id=bu2.maale_id;

现在,我将它们命名为bu1bu2。确保在查询中引用右表中的右侧字段。

P.S。我不确定你是否真的可以做energi_stage_ext2.maale_id=bu2.maale_id。您没有在查询中加入energi_stage_ext2。你可能需要首先加入,但我不是100%肯定。