Страницы

Поиск по вопросам

понедельник, 24 февраля 2020 г.

Как установить значение по умолчанию для столбца в многотабличном запросе?

#sql


У меня есть три таблицы: Book(Id), Topic(Id), BookTopic(BookId, TopicId).
Есть запрос который для каждого Topic возвращает количество Book в этом Topic:

SELECT T.Id, T.TopicName, count(BT.TopicId) AS 'BooksCount' 
FROM Topic T, BookTopic BT
WHERE T.Id = BT.TopicId
GROUP BY T.Id, T.TopicName


Но есть проблема: если с топиком не связана ни одна книга то такой топик не возвращается.
А я хотел что бы такой топик возвращался со значение BooksCount=0.
Как это можно сделать? 
    


Ответы

Ответ 1



Для этого следует воспользоваться LEFT JOIN SELECT T.Id, T.TopicName, count(BT.TopicId) AS 'BooksCount' FROM Topic T LEFT JOIN BookTopic BT ON T.Id = BT.TopicId GROUP BY T.Id, T.TopicName

Комментариев нет:

Отправить комментарий