Эти упрощенные версии трех таблиц у меня есть:SQL объединить два запроса в один
Books
BookID (PK)
AuthorID
...
Purchases
PurchaseID (PK)
CustomerID
BookID
Date
...
Authors
AuthorID (PK)
Name
...
Я надеюсь, что связь между таблицами сам за себя, но я дам краткое объяснение: Eсть от одного до многих отношений между авторами и книгами, а также между книгами и покупками.
Теперь я хочу выбрать книгу из книг, написанных автором и купленных более X раз.
Я могу запросить книги для данного автора:
SELECT * FROM Books where AuthorID = 'some author';
Но я хочу только те книги, которые были куплены более чем Х раз.
SELECT BookID from Purchases WHERE ...(where the occurance of BookID>X)
Я не знаю, как выполнить этот запрос, или даже если это возможно. И затем я хочу объединить его с первым запросом, используя INNER JOIN, если это возможно.
Я согласен с тем, что дизайн испорчен. Возможно, таблица «Покупки» должна просто иметь BookIDs как PK и иметь поле для количества покупок.
Ваша конструкция не испорчен. Было бы, если бы вы изменили таблицу покупок, как вы упомянули. –