Ulr*_*dle 1 mysql sql attributes
我的SQL句子有点问题.我有一个带有product_id和flag_id的表,现在我想获得与指定的所有标志匹配的product_id.我知道你必须自己加入它,以匹配多个,但我不知道它的确切SQL.
标志表
product_id | flag_id
1 1
1 51
1 23
2 1
2 51
3 1
Run Code Online (Sandbox Code Playgroud)
我想得到所有有flag_id 1,51和23的产品.
获取与指定的所有标志匹配的product_id
这个问题叫做关系部门.解决它的一种方法是这样做:
GROUP BY product_id .IN谓词指定要匹配的标志.HAVING子句确保每个产品都有标记,像这样:
SELECT product_id
FROM flags
WHERE flag_id IN(1, 51, 23)
GROUP BY product_id
HAVING COUNT(DISTINCT flag_id) = 3
Run Code Online (Sandbox Code Playgroud)
该HAVING子句将确保所选的product_id必须同时包含三个标志,如果它只有一个或两个,它将被删除.
在这里看到它:
这只会给你:
| PRODUCT_ID |
--------------
| 1 |
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |