У меня есть две таблицы с именем «Книга» и «Автор». Атрибутами таблицы «Книга» являются: PK-Book_Num, Book_Title, Book_Year, Book_Cost, Book_Subject. Атрибуты для таблицы «Автор»: PK-Au_ID, Au_Fname, Au_Lname. Эти две таблицы имеют отношение M: N друг к другу, а таблица мостов между ними называется «Writes» и имеет составной первичный ключ из двух таблиц, состоящих из Book_Num и Au_ID. Вот мой вопрос: я хочу написать запрос для отображения Au_ID, Au_Fname, Au_Lname для всех авторов, которые никогда не писали книгу с темой «Программирование» и заказывали результаты Au_Lname. Как я могу сделать это с помощью подзапроса?Объединяется с использованием Sub Queries
0
A
ответ
0
Дайте этот выстрел:
SELECT A.Au_ID, A.Au_Fname, A.Au_Lname FROM Author A
JOIN Writes W ON A.Au_ID = W.Au_ID
JOIN Book B ON B.Book_Num = W.Book_Num
WHERE A.Au_ID NOT IN (
SELECT A.Au_ID FROM Author A
JOIN Writes W ON A.Au_ID = W.Au_ID
JOIN Book B ON B.Book_Num = W.Book_Num
WHERE B.Book_Subject = 'Programming'
)
ORDER BY A.Au_Lname ASC;
0
Если вы хотите более высокую производительность, вы можете использовать «НЕ СУЩЕСТВУЕТ», чтобы получить данные, которые вы хотите.
SELECT Au_ID, Au_Fname, Au_Lname FROM Author
WHERE NOT EXISTS
(
SELECT A.Au_ID FROM Author A
JOIN Writes W ON A.Au_ID = W.Au_ID
JOIN Book B ON B.Book_Num = W.Book_Num
WHERE B.Book_Subject = 'Programming'
AND Author.Au_ID = A.Au_ID
)
ORDER BY Au_Lname ASC
Смежные вопросы
- 1. Sub Queries
- 2. MySQL Round & Sub-Queries
- 3. ошибка sub queries
- 4. SQL SUM Sub Queries
- 5. SQL Sub Queries/Self Join
- 6. SQL Sub Queries - данные листинга
- 7. NHibernate Linq Query - выберите Sub Queries
- 8. SQL Sub Queries: состояния без кошек
- 9. TSQ Sub Queries - это группа сообщений
- 10. Sub Queries with Multiple WHERE statement ...
- 11. Sub Queries в предложении ORDER MySQL MySQL
- 12. SQL Sub Queries и ORDER BY
- 13. MySQL Query Optimization - Sub Queries + Multiple Joins
- 14. , где предложение sub sub с использованием avg
- 15. Комплекс Mysql объединяется с использованием IF
- 16. Объединяется с использованием внешнего ключа codeigniter
- 17. Таблица Mysql объединяется с использованием предложения where
- 18. Node.js multiple Sequelize raw sql query sub queries
- 19. Поиск по массивам с использованием Datastore Queries
- 20. MySQL Sub-Queries - показать результаты в одной строке
- 21. OrderBy на Sub Collection с использованием RavenDB
- 22. Pub/Sub с использованием RabbitMQ
- 23. Объединяется с командой SELECT
- 24. SQL объединяется в массив для каждой таблицы
- 25. Неравенство объединяется в Пандах?
- 26. MassTransit pub/sub с MSMQ с использованием
- 27. Массив объединяется в ассоциативный массив
- 28. PHP Array объединяется с использованием одного значения столбца
- 29. Имея проблемы с использованием LEFT Объединяется на двух таблицах
- 30. MySQL объединяется с дополнительным условием
Большое спасибо, мне просто нужно было добавить Unique в Au_ID, чтобы получить запрос, который я искал. – user3046541