我进行了一个查询,该查询获取行数tableA并将按字段的计数分组set_id到临时表中c。然后,如果table 中的字段与字段的值相同,它会通过将其字段的值更改为 table 的值来执行 UPDATEon 。tableBcurrent_countccountcountcset_idcurrent_countset_id
UPDATE sets, (
SELECT
set_id,
COUNT(set_id) AS count
FROM leads_auto
GROUP BY set_id
) c
SET sets.current_count = c.count
WHERE sets.set_id = c.set_id
此查询的缺点是如果's的表中不存在计数,则它不能UPDATE tableB使用current_count零值。ctableBset_id
我试过这个
UPDATE sets, (
SELECT
set_id,
COUNT(set_id) AS count
FROM leads_auto
GROUP BY set_id
) d
SET sets.current_count = 0
WHERE sets.set_id != d.set_id
但它不会影响任何行,tableB即使 tablec返回带有set_idin 的行tableB并排除了一些set_id确实存在于的行tableB。
有谁知道如何做到这一点?
SELECT set_id, COUNT(set_id) AS count FROM leads_auto GROUP BY set_id
退货
set_id | count
-------+---------
1 | 7
5 | 5
4 | 16
7 | 2000000