2014-10-16 70 views
0

想知道如果你能帮我解决这个问题。栏目列表D1'ambigious

通常,如果你想运行一个加入你使用像我在这里写了一个脚本的INSERT ...

INSERT INTO products_BU (`d1`) 
     SELECT `D1` 
     FROM new_dimensions_BU 
     LEFT JOIN new_dimensions_BU AS ud 
     ON products_BU.size_code = ud.SIZE_CODE 

这里的难题,在products_BU没有字段正好是D1,此外,即使有,对我而言,仅仅为该列使用别名也很简单。如果我使用别名ud.D1,我会遇到另一个问题,即在'on子句'中显示Unknown列'products_BU.size_code',尽管我可以看到它完全是size_code。

如果我删除了别名,我再次得到含糊不清的列,因此删除别名也不起作用。

任何人都可以阐明为什么会发生这样的错误吗?

+0

*在products_BU中没有完全为D1 *的字段,这怎么可能?,您正在使用INSERT INTO products_BU(d1)',因此该表中存在'd1' **必须** – Lamak 2014-10-16 16:08:50

+0

yes但是肯定它们因“D1”中的首都而不同?即使它们是相同的并且我使用了别名,它仍然会失败。 – 2014-10-16 16:13:03

+0

你有这个连接谓词--'products_BU.size_code = ud.SIZE_CODE' - 但'products_BU'没有出现在选择列表中,这就是为什么你会得到未知的列错误。我怀疑你想'new_dimensions_BU.size_code = ud.SIZE_CODE'。 – GarethD 2014-10-16 16:13:57

回答

0

当你有这样的查询:

insert into table2 
(field1, field2, etc) 
select query goes here 

的选择查询必须能够在它自己的成功执行。

看这段代码:

FROM new_dimensions_BU 
LEFT JOIN new_dimensions_BU AS ud 
ON products_BU.size_code = ud.SIZE_CODE 

您正试图引用产品表没有加入到它。