a今天有新问题。。
不知道为什么不起作用,但我正在尝试使用where id in()更新表列。
我得到这个错误:
You can't specify target table 'membre_non_filtrer' for update in FROM clause
这是函数:
UPDATE membre_non_filtrer
SET chef=1 where id IN(
SELECT tt.id FROM membre_non_filtrer tt INNER JOIN
(SELECT famid, MAX(age) AS maxAge
FROM membre_non_filtrer GROUP BY famid)
groupedtt ON tt.famid = groupedtt.famid
AND tt.age = groupedtt.maxAge ORDER BY `tt`.`famid` ASC)
只是告诉你,选择工作,并返回一个良好的价值。
知道吗?
最佳答案
一个简单的技巧是将子查询命名为IN(SELECT t.id FROM (subquery) t )
UPDATE membre_non_filtrer
SET chef=1 where id IN(
SELECT t.id FROM
SELECT tt.id FROM membre_non_filtrer tt INNER JOIN
(SELECT famid, MAX(age) AS maxAge
FROM membre_non_filtrer GROUP BY famid)
groupedtt ON tt.famid = groupedtt.famid
AND tt.age = groupedtt.maxAge ORDER BY `tt`.`famid` ASC
) t
)
或者你可以使用join
UPDATE
membre_non_filtrer tt
INNER JOIN
(SELECT
famid,
MAX(age) AS maxAge
FROM
membre_non_filtrer
GROUP BY famid) groupedtt
ON tt.famid = groupedtt.famid
AND tt.age = groupedtt.maxAge
SET tt.chef = 1
关于mysql - mysql更新问题在哪里id,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25147762/