БД PostgreSQL
Есть 2 таблицы вида:
1. Ключ (автоинкремент) - Текстовое поле
2. Ключ (автоинкремент) - ключ из первой таблицы - Текстовое поле
Нужно одним запросом узнать, сколько в первой таблице записей, которые связаны с записями из второй и сколько таких, которые не связаны.
То есть, если
1 - Вася
2 - Петя
3 - Миша
и
1 - 1 - Кошка
2 - 1 - Собака
3 - 3 - Свинья
то в результате нужно:
0 - 1 (одна запись ни с кем не связана: Петя)
1 - 2 (2 записи имеют связи: Вася-Собака+Кошка, Миша-Свинья)
Это реально взять одним запросом?
1. ddvhouse - 01 Сентября, 2011 - 15:27:07 - перейти к сообщению
2. White - 01 Сентября, 2011 - 17:37:33 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT COUNT(`a`.`id`) AS total_number, COUNT(`b`.`table1_id`) AS match_number FROM `table1` AS a LEFT JOIN `table2` AS b ON `b`.`table1_id` = `a`.`id`
в результате total_number - общее число записей в первой таблице, match_number - число записей во второй таблице связанных с первой.