繁体   English   中英

使用IN以外的其他子查询mysql

[英]Using something else than IN for subquery mysql

嗨,我正在写一个使用插入和更新的查询,更新包含一个选择一个或多个行的子查询。 当我运行查询时,出现以下错误:“#1235-此版本的MySQL尚不支持'LIMIT&IN / ALL / ANY / SOME子查询”

奇怪的是,我使用的是最新版本的mysql,自5.1起就支持此功能。 我的查询如下:

INSERT INTO Orders 
    (OrderID, Orderdate, Leverdate, status) 
    VALUES ('', now(), '2014-21-05', 'In      Behandeling');

UPDATE Dozen SET OrderID = LAST_INSERT_ID() 
    WHERE OrderID IN (SELECT DoosID FROM Dozen Limit 0,3);

我该如何将该查询重写为mysql将理解并执行的内容?

提前致谢!

使用INNER JOIN

UPDATE Dozen 
INNER JOIN Orders ON DoosID = OrderID
SET Dozen.OrderID = LAST_INSERT_ID()

或将IN更改为=,因为您的子查询总会返回1条记录。

UPDATE Dozen 
SET OrderID = LAST_INSERT_ID()
WHERE OrderID = (SELECT DoosID FROM Dozen LIMIT 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM