- Выполните
Left join
из Таблицы2 в Таблицу1, используя ID
. - Используйте функции агрегирования, такие как
Sum()
, с условными функциями / операторами, такими как Ifnull()
, IS NOT NULL
. Code
- это ключевое слово в MySQL .Вам следует избегать использования его в качестве имени таблицы и использовать вместо него другое имя.Если вам все еще нужно его использовать, вам придется использовать обратные метки вокруг него.
Попробуйте выполнить следующее ( DB Fiddle DEMO ):
SELECT
SUM(IF(t1.`Code` IS NOT NULL, t2.Flag = t1.`Code`, 0)) AS `TRUE`,
SUM(IF(t1.`Code` IS NOT NULL, t2.Flag <> t1.`Code`, 0)) AS `FALSE`,
SUM(IF(t1.`Code` IS NULL, 1, 0)) AS `NULL`
FROM Table2 AS t2
LEFT JOIN Table1 AS t1 ON t1.ID = t2.Merchant_ID
Укороченная версия ( DB Fiddle ):
SELECT
SUM(t1.`Code` IS NOT NULL AND t2.Flag = t1.`Code`) AS `TRUE`,
SUM(t1.`Code` IS NOT NULL AND t2.Flag <> t1.`Code`) AS `FALSE`,
SUM(t1.`Code` IS NULL) AS `NULL`
FROM Table2 AS t2
LEFT JOIN Table1 AS t1 ON t1.ID = t2.Merchant_ID;