Доброго времени суток. Есть три таблицы:
books (id, title)
users (id, first_name, last_name, age)
users_books (id, user_id, book_id)
В таблице users_books содержится информация о купленных пользователями книгах. Необходимо выбрать список пользователей, которые не покупали книгу с определенным названием.
Мой запрос:
SELECT
DISTINCT users.first_name,
users.last_name,
users.id
FROM
users
INNER JOIN users_books ON users.id = users_books.user_id
WHERE
users_books.user_id NOT IN (
SELECT
`user_id`
FROM
`users_books`
WHERE
users_books.book_id = (SELECT id FROM books where title = "Book")
)
GROUP BY
users_books.user_id
Можно ли выполнить запрос оптимальнее?