MYSQL Update语句-未知列

MYSQL Update语句-未知列,mysql,join,Mysql,Join,我有一个select查询,它可以正确地处理以下输出: 我想创建一个update语句来设置despgoods\u alldetails.loadid列=loaddetails.loadid的值,其中despgoods\u alldetails\u despgoodsid=loaddetails.despgoodsid.loadid 我当时在想 更新所有详细信息 设置despgoods\u alldetails.loadid=loaddetails.loadid 其中despgoods\u all

我有一个select查询,它可以正确地处理以下输出:

我想创建一个update语句来设置despgoods\u alldetails.loadid列=loaddetails.loadid的值,其中despgoods\u alldetails\u despgoodsid=loaddetails.despgoodsid.loadid

我当时在想

更新所有详细信息 设置despgoods\u alldetails.loadid=loaddetails.loadid 其中despgoods\u alldetails.despgoodsid=loaddetails.despgoodsid

此查询失败,错误如下:

知道我怎样才能让这个更新语句工作吗

谢谢,
Ryan

loaddetails
是一个单独的表,与您尝试更新的表不同。这不能直接在SQL更新中完成。您将需要这样的子选择:

update despgoods_alldetails
set despgoods_alldetails.loadid = (
    select loaddetails.loadid
    from loaddetails
    where despgoods_alldetails.despgoodsid=loaddetails.despgoodsid
)

差不多了,你只需要第二个表的引用

UPDATE despgoods_alldetails, loaddetails
    SET despgoods_alldetails.loadid = loaddetails.loadid
    WHERE despgoods_alldetails.despgoodsid=loaddetails.despgoodsid

您需要在update子句之后放置两个表,如下所示

update despgoods_alldetails, loaddetails set despgoods_alldetails.loadid =     loaddetails.loadid where despgoods_alldetails.despgoodsid=loaddetails.despgoodsid
你能在这页找到一个简单的例子吗


嗨@Mac,谢谢你的及时回复。通过subselect,我是否必须在update语句中嵌入select语句?有没有可能你可以为我详细说明一下,或者提供一个示例查询?谢谢R@RyanSmith就这么做了。这被称为“相关子查询”,因为它引用了外部语句中的一列。谢谢Mac,工作得很好@Joe Stefanelli语法也100%。再次感谢,A感谢您的帮助。Update语句不能更新多个表(至少在我使用过的任何实现中都不能),它们可以在MySQL中更新@Mac。请看,我的立场是正确的。看看这个。不过,子查询的可移植性更强。谢谢Joe,它工作得非常好@Mac语法也100%有效。谢谢你的帮助。
update despgoods_alldetails, loaddetails set despgoods_alldetails.loadid =     loaddetails.loadid where despgoods_alldetails.despgoodsid=loaddetails.despgoodsid
UPDATE items,month SET items.price=month.price WHERE items.id=month.id;