の行数を取得し、その数をフィールドごとに一時テーブルにtableAグループ化するクエリを作成しました。次に、テーブルのフィールドがフィールドの値と同じである場合、そのフィールドの値をテーブルの 値に変更することによってオンになります。set_idcUPDATEtableBcurrent_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
ただし、テーブルがinを含む行を返し、に存在するいくつかの'を除外しても、上の行には影響しません。tableBcset_idtableBset_idtableB
誰もがこれを達成する方法を知っていますか?
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