У меня есть 4 таблицы, как показано ниже
В основном я хочу получить, сколько пользователей из таблицы 1 находится в таблицах 2, 3 и 4. Аналогично для таблицы 2 я хочу получить, сколько пользователей присутствует в таблицах 1, 3 и 4. и то же самое для таблиц 3 и 4
В общем, все возможные комбинации. Конечный результат, который я хочу, выглядит примерно так:
Один из способов, который я пытаюсь решить, - это выполнить left-join
из table1
с другими таблицами, за которыми следует count
, чтобы получить первую строку моего вывода. Но делать это для всех возможных комбинаций неоптимально. Я искал любую другую альтернативу, которая возможна
Мой код для того же
SELECT
COUNT(DISTINCT A.id) table1,
COUNT(DISTINCT B.id) table2,
COUNT(DISTINCT C.id) table3,
COUNT(DISTINCT D.id) table4
FROM table1 A
LEFT JOIN table2 B
ON A.id = B.id
LEFT JOIN table3 C
ON A.id = C.id
LEFT JOIN table4 D
ON A.id = D.id
db-fiddle (эта скрипка предназначена для mysql, я ищу общий Подход на основе SQL, чем любой подход, специфичный для БД)