你可能想要join http://dev.mysql.com/doc/refman/5.0/en/join.htmlitem 表上的 item2cat 表:
SELECT
item.id
, item.name
, item.desc
FROM item
INNER JOIN item2cat ON item.id = item2cat.itemID
WHERE item2cat.catID = [category_id]
或者例如
SELECT
item.id
, item.name
, item.desc
, category.id
, category.name
FROM item
INNER JOIN item2cat ON item.id = item2cat.itemID
INNER JOIN category ON item2cat.catID = category.id
WHERE category.id IN ( [category_id], [category_id], [category_id])
UPDATE
如果您像这样更改了表 ID:
item (itemId, name, desc)
item2cat (itemId, categoryId)
category (categoryId, name, etc)
您可以重写第一个查询,例如:
SELECT
item.itemId
, item.name
, item.desc
FROM item
INNER JOIN item2cat USING( itemId )
WHERE item2cat.categoryId = [category_id]
另一个优点是id
每个表的列现在都明确了。