Wyszukanie klientów którzy wypożyczyli zestaw książek

Wyszukanie klientów którzy wypożyczyli zestaw książek
MI
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam, mam pewien problem ze skonstruowaniem zapytania, które można sprowadzić do tytuowego. Struktura bazy:

clients

client_id _client_name
1 Paweł
2 Gaweł

clients_books

client_id book_id
1 1
1 4
1 6
2 2
2 5
2 6

potrzebuję zapytania, które zwróci wszystkich klientów którzy wypożyczyli np 2 ksiązki (id==4 i id==6)?
Jedyne co mi się udało na razie wymyśleć to coś takiego:

Kopiuj
SELECT 
    *
FROM
    clients
where
    (SELECT 
            count(distinct clients_books.book_id)
        FROM
            clients_books
        where
            clients_books.client_id = clients.client_id
                AND (clients_books.book_id = 4 OR clients_books.book_id = 6)
        group by user_id) = 2 

Czy jest jakiś bardziej poprawny sposób?

M8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
1
Kopiuj
select c.client_name from clients c inner join clients_books b on c.client_id = b.client_id 
where b.book_id in (4,6) 
group by c.client_name 
having count(b.book_id) = 2
  • Rejestracja: dni
  • Ostatnio: dni
0
michal84 napisał(a):
Kopiuj
select c.client_name from clients c inner join clients_books b on c.client_id = b.client_id 
where b.book_id in (4,6) 
group by c.client_name 
having count(b.book_id) = 2

Co jeżeli ktoś wypożyczył dwie książki o id = 4?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.