回答

收藏

结合AND / OR的MySQL多对多条件

技术问答 技术问答 239 人阅读 | 0 人回复 | 2023-09-12

我有一个关于mysql这是一个复杂的问题Mysql多个标签(多对多关系)与匹配所有标签有关?6 q6 q& b; a3 u* B! Y
所以我有经典MN表架构:. q0 h' H; g% a# f$ z* Q6 r5 `
Item1 | Item12 | Item2...Category1 | Category12 | Category23 | Category34 | Category4...Item_has_category1 | 1...问题是-如何获得行,包括 项    具有 Category1        Category2    AND    Category3    ?
/ ?8 y0 T' |  S它用于某些复杂的过滤器,某些类别有特殊的组,必须与 一起使用AND    一起使用。
' k/ B( Z+ p- G" D1 t3 ?我想我一定会HAVING与DISTINCT结合起来 (另一个链接到顶部的问题)    ,但我不确定如何结合。
- R: F2 W4 S7 E" ^8 r4 t                                                                . `; D7 o$ ?2 z# M
    解决方案:                                                                ' W' D0 d1 \4 A: ]3 J  _, X+ \+ J% u
                                                                这group by将工作:
7 f6 H4 \- |5 \0 Tselect  ItemIdfrom    Item_has_categorygroup by        ItemIdhaving  sum(case when CategoryId = 1 then 1 end) =                 or sum(case when CategoryId = 2 then 1 end) =                 andsum(case when CategoryId = 3 then 1 end) =
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则