【发布时间】:2014-10-16 16:05:38
【问题描述】:
想知道你能不能帮我解决这个问题。
通常,如果您想使用连接运行 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 子句”中显示未知列“products_BU.size_code”,即使我可以看到它正是 size_code。
如果我删除别名,我会再次得到 Ambiguous 列,因此删除别名也不起作用。
谁能解释为什么会发生这样的错误?
【问题讨论】:
-
products_BU中没有正好是D1的字段,怎么会这样?,你用的是
INSERT INTO products_BU(d1),所以d1必须 存在于该表中 -
是的,但它们肯定是不同的,因为
D1中的大写字母?即使它们相同并且我使用了别名,它仍然会失败。 -
你有这个连接谓词 -
products_BU.size_code = ud.SIZE_CODE- 但products_BU没有出现在选择列表中,这就是你得到未知列错误的原因。我怀疑你想要new_dimensions_BU.size_code = ud.SIZE_CODE。 -
抱歉,我没有按照您对实际问题的解释。您很可能只是混淆了整个问题,您需要了解如何使用表别名。