This is a question I got from a book (don't remember which), it goes like this:
You have three tables:
- Supplier (
supId, name
) - Product (
prodId, name
) - inventory (
supId, prodId
)
You need to find, with one query, all the suppliers that have in their inventory all the products (or more) supplier X has (lets say supplier X is the one with supId=1
).
(so if supplier 1 has in his inventory bananas and apples, you need to find all the suppliers that carry at least bananas and apples)
You can use standard SQL only (including joins).
Apparently this is a known issue/question, you should check out this question: How to filter SQL results in a has-many-through relation (excellent solutions and analysis)