Объединение двух таблиц и как найти запись, содержащую хотя бы два значения из одной таблицы - PullRequest
0 голосов
/ 09 июля 2020

Предположим, что в библиотеке есть таблица для ссуд, выданных в библиотеке - (номер_саймы, номер_члена, номер_книги) и другая таблица для книги (номер_книги, тип_книги, некоторые другие детали)

Я хочу выбрать записи, в которых была заимствована одна книга из двух разных категорий.

Например, если в заимствование_no входит по одной книге из типов book_type «CRIME» и «SCIENCE FICTION», я бы хотел выбрать ее - и только. Как мне go об этом?

SELECT  *
FROM    loan
JOIN    book
ON      book.book_no = loan.book_no
WHERE   <loan_no contains book.book_category = 'SCIENCE FICTION' AND 'CRIME'>

Спасибо.

CN

1 Ответ

1 голос
/ 09 июля 2020

Если таблица loan имеет несколько строк для задания loan, вы можете использовать агрегирование:

select l.loan_no
from loan l join
     book b
     using (book_no)
where b.book_category in ('SCIENCE FICTION', 'CRIME')
group by l.loan_no
having count(distinct b.book_category) = 2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...