PHP&;MySQL多个类别中的一个项目


PHP & MySQL One item in multiple categories

我尝试从stores表中选择可以属于多个类别的所有项目

这是我的表格结构:

stores

id
name

categories

id
name

store_category

store_id
category_id

我已经尝试了以下查询,但它没有像我想要的那样工作:

SELECT * FROM (stores JOIN store_category ON stores.id = store_category.store_id) JOIN categories ON store_category.category_id = categories.id

我想做的是:

选择在store_category 中设置了category_id=php var$category_id的所有stores

*添加为伪代码

我该怎么做?

PS:填充表示例

`stores`
id  |  name
1   |  amazon
1   |  aliexpress

`categories`
id  | name
1   | smartphones
2   | fashion
`store_category`
store_id  |  category_id
1         |  1
1         |  2
2         |  1
2         |  2

从这个表的设计中,我想表达两个商店都包含在两个类别

如果您想选择属于名称为"some_category"的类别的所有商店,那么您可以尝试以下操作:

SELECT aa.id, aa.name
FROM stores AS aa
INNER JOIN store_category AS bb
ON aa.id = bb.store_id
INNER JOIN category AS cc
ON bb.category_id = cc.id
WHERE cc.name = 'some_category';

在这个示例中,我首先获得具有类别名称的所有行,然后加入商店。所以你们不必查询所有有类别的商店

SELECT s.name
FROM store_category AS sc
LEFT JOIN stores AS s ON sc.store_id = c.id
WHERE sc.category_id = 2;

它不是testet。如果对你有用的话,请现在告诉我。

您只需执行以下操作:

SELECT table1.*, table2.*, table3.* from table1, table2, table3
   where table1.id=table2.id and table2.id=table3.id and 
   table3.id=table1.id;