我有3张桌子:
类别doesnt matter
item2cat:itemID|catID
单品:id|name|desc
我想列出给定类别中的项目,但我不知道如何简单地做到这一点。(使用PHP和MySQL)
我需要这个表结构,因为我想要多个类别到一个项目。
发布于 2010-02-07 22:23:24
您可能想要在您的item表上join 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])更新
如果您像这样更改了表If:
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列都是明确的。
发布于 2010-02-07 22:26:20
这应该是有效的,并获取给定类别中的所有相关项:
SELECT item.*
FROM item2cat
JOIN item
ON item.id = item2cat.itemID
and item2cat.catID = $categoryIDhttps://stackoverflow.com/questions/2217030
复制相似问题