您好我正在编写一个使用插入和更新的查询,更新有一个子查询,它选择一行或多行。 当我运行查询时,我收到以下错误:"#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理解和执行的内容?
提前致谢!
答案 0 :(得分:0)
使用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)