SELECT Значение столбца на основе Subselect, если запись существует - PullRequest
0 голосов
/ 08 октября 2019

У меня определены следующие таблицы.

enter image description here

Если у читателя есть любимая книга, для этой пары читатель / книга будет существовать запись в таблице ReaderFoving.

Я хочу создать представление, которое возвращает следующий набор данных при фильтрации по ReaderId

Book.Id
Book.Title
Book.Author
IsFavorite ( a bit field, true if a record exists, false otherwise)

Представление будет вызываться так:

    SELECT * FROM BookView WHERE ReaderId = [somevalue]

Я не могупохоже, нашел способ создать такой запрос.

1 Ответ

2 голосов
/ 08 октября 2019

Вы можете использовать LEFT JOIN и условное присвоение:

SELECT 
    b.Id,
    b.Title,
    b.Author,
    CAST(IIF(rf.bookid IS NULL, 0, 1) as BIT) IsFavorite
FROM
    book b
    LEFT JOIN ReaderFavorites rf
        ON rf.BookId = b.Id
        AND rf.AuthorId = @AuthorId
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...