Похоже, что вы можете использовать команду REPLACE
следующим образом:
REPLACE INTO items (item_id, ref_count)
SELECT item_id, COUNT(*) AS ref_count
FROM users
GROUP BY item_id;
Контрольный пример:
INSERT INTO users VALUES (1, 1);
INSERT INTO users VALUES (2, 1);
INSERT INTO users VALUES (3, 1);
INSERT INTO users VALUES (4, 2);
INSERT INTO users VALUES (5, 2);
INSERT INTO users VALUES (6, 3);
Результат после выполнения запроса REPLACE
:
SELECT * FROM items;
item_id ref_co
------------ ------
1 3
2 2
3 1
Добавление дополнительных предметов:
INSERT INTO users VALUES (7, 1);
INSERT INTO users VALUES (8, 4);
INSERT INTO users VALUES (9, 4);
И после повторного выполнения запроса REPLACE
:
SELECT * FROM items;
item_id ref_co
------------ ------
1 4
2 2
3 1
4 2