我需要SQL查询帮助:SQL子查询所有
UPDATE content_type_blog b
LEFT JOIN node n
ON n.nid = b.nid
SET b.field_is_latest_value = 1
WHERE n.nid IN (
(
SELECT nid
FROM node
GROUP BY uid
ORDER BY created DESC
)
);
在WHERE
子句选择返回4012倍的结果,但在运行整个查询时更新124K结果,而不是限制它与那些在子查询中匹配的4012匹配。
此查询有意更新content_type_blog
- 表列nid
其中在节点表中创建的最高(最新)。
让我们忘了问题的更新部分。你能构建一个能够返回所需结果的SELECT查询吗?如果没有,请考虑提供适当的DDL(和/或一个sqlfiddle)与期望的结果。另请注意,UPDATE语句上的OUTER JOIN很少。 – Strawberry
SELECT nid FROM节点GROUP BY uid ORDER BY创建DESC;会返回neede结果集,但出于某种原因,我无法确定使用此数据集的WHERE子句允许UPDATE更新content_type_blog上的所有行,而不是限制为子查询返回的那些行。 –
我怀疑你需要在2个条件加入该查询,如果你想要它限制4012更新到一个特定的组。 – Mihai