powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбор из главной и дочерей таблицы
2 сообщений из 2, страница 1 из 1
Выбор из главной и дочерей таблицы
    #32025979
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две таблицы.
create table block (
id bigint,
name char(10)
);

create table subblock (
blockid bigint
name char(10)
);

Соответственно subblock.blockid ссылается на block.id
Обе таблицы заполнены но не на каждый block есть subblock. И в block может быть более одного subblock.
Цель: выбрать таблицу следующего вида
block.id, number_of_subblocks
где number_of_subblocks это количество subblocks ссылающихся на это block.id

SELECT bl.id, count(*) as number_of_subblocks
FROM block bl, subblock sb
WHERE sb.blockid=bl.id
GROUP BY sb.blockid

Все-бы хорошо, но при таком запросе вообще нет ни одной записи по тем block в которых нет subblock а в этом случае надо выводить 0 (ноль). Пробовал с JOIN и запутался окончательно получались все варианты кроме нужного.
...
Рейтинг: 0 / 0
Выбор из главной и дочерей таблицы
    #32026001
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо вроде разобрался!

Получилось вот так.
SELECT bl.id, SUM(CASE WHEN sb.id IS NULL THEN 0 ELSE 1 END) AS SB_COUNT,
SUM(CASE WHEN dc.blockid IS NULL THEN 0 ELSE 1 END) AS MSG_COUNT
FROM block AS bl
LEFT JOIN block AS sb ON bl.id=sb.parentid
LEFT JOIN docs AS dc ON bl.id=dc.blockid
GROUP BY bl.id

Самое странное не захотел работать NULLIF !?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбор из главной и дочерей таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]