Никак не могу сообразить как осуществить sql запрос таким образом, чтобы подсчитать соответствующие поля в связки двух таблиц.
Имеется следующая структура таблиц:
CREATE TABLE `tbl1` (
`id` INT(11) UNSIGNED NOT NULL auto_increment,
`title` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)) ENGINE = MyISAM DEFAULT CHARSET = utf8;
CREATE TABLE `tbl2` (
`id` INT(11) UNSIGNED NOT NULL auto_increment,
`tbl1_id` INT(11) UNSIGNED NOT NULL,
INDEX (`tbl1_id`),
PRIMARY KEY (`id`)) ENGINE = MyISAM DEFAULT CHARSET = utf8;
Нужно посчитать количество всех строк первой таблицы и именно тех, которых нет во второй. Первая таблица связана со второй по следующим полям: tbl1.id и tbl2.tbl1_id
То-есть, если 20 idшников первой таблицы нет во второй, то результат должен быть 20.
Каким образом можно подсчитать?
Используйте left join. Соединяете таблицы, смотрите, какие строки не соединились, считаете их количество:
select count(t1.id)
from tbl1 t1 left join tbl2 t2 on t1.id = t2.tl1_id
where t2.id is null
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники