MySQL - 获取记录时出错

时间:2016-07-31 08:47:03

标签: mysql

我有三张桌子。

Table : products  
column : id, productname

Table :attribute_master 
column : id, attributename

Table : assignedproductfilter 
column :  id, productid (FK products), filterid (FK attribute_master)

assignedproductfilter可能包含多个productid的同一个filterid

示例:

| id | productid | filterid |
|----|-----------|----------|
| 1  | 105       | 56       |
| 2  | 105       | 50       |
| 3  | 105       | 34       |
| 4  | 200       | 56       |
| 5  | 201       | 22       |

现在,假设我希望获得filterid为56,50和34的所有产品。所有这三个filter id都应分配给products

如何在mysql中为此编写查询?

1 个答案:

答案 0 :(得分:0)

SELECT p.* FROM products AS p
INNER JOIN WITH assignedproductfilter AS af ON af.productid = p.id
WHERE af.filterid IN (56, 50, 34)

请在下一次要求尝试自己尝试之前。

使用sqlfiddle之类的内容,或只包含模式定义SQL。