Quote:
Originally posted by Jonathan_Beni
Let me ask a follow up on that reply...
Now that I have a structure similar to this one how can I retrieve Items that have more than one category?
CategoryID = 1 AND CategoryID = 2, for instance
Thanks
|
There are various ways:
SELECT i.*
FROM items i
WHERE EXISTS
(SELECT 1 FROM item_categories ic
WHERE ic.item = i.item AND ic.category=1)
AND EXISTS
(SELECT 1 FROM item_categories ic
WHERE ic.item = i.item AND ic.category=2);
SELECT i.*
FROM items i
WHERE EXISTS
(SELECT 1 FROM item_categories ic1, item_categories ic2
WHERE ic1.item = i.item AND ic1.category=1
AND ic2.item = i.item AND ic2.category=2);
SELECT DISTINCT i.*
FROM items i, item_categories ic1, item_categories ic2
WHERE ic1.item = i.item
AND ic1.category=1
AND ic2.item = i.item
AND ic2.category=2;
SELECT i.*
FROM items i
WHERE i.item IN
( SELECT item FROM item_categories WHERE category=1
INTERSECT
SELECT item FROM item_categories WHERE category=2
);
...etc.