У меня есть таблица t1
так:таблица обновлений на основе агрегирования из другой таблицы
Names Drug
Tom A
Tom A
Tom B
Lily B
Lily B
и стол t2
так:
Names Drug COUNT(Drug)
Tom A
Tom B
Tom C
Lily A
Lily B
Я хочу, чтобы вставить в COUNT(drug)
колонку t2 данные от t1 после группировки по лекарству и имени. Нужный выход t2 выглядит следующим образом:
Names Drug COUNT(Drug)
Tom A 2
Tom B 1
Tom C 0
Lily A 0
Lily B 2
Я думаю о создании еще одной таблицы t3
с GROUP BY drug, name
данными t1
, а затем UPDATE t2
на основе t3
, но это довольно много времени.
Заметьте, что это возможно имя, пара наркотиков существует в t1, но не t2. Например, в образцовых данных OP вы никогда не будете обновлять строки для (Tom, C) и (Lily, A). Вы должны попробовать LEFT JOIN. – AdamMc331
Да, вы правы. Я отредактирую свой ответ, спасибо! – flavi
Выглядит хорошо! Единственное, что все еще отсутствует, это то, что левое соединение будет означать, что «r.num» имеет значение null для этих значений, а не 0. Рассмотрим добавление проверки с использованием 'IF()' или 'IFNULL()' или 'COALESCE()'. Любой будет работать, но я предпочитаю последний. – AdamMc331