我有如下情况:
  PlanID  StateID
    1   22
    2   22
    2   30
    3   7
    3   22
    3   33
    3   46
    4   22
    5   22
    12  22
    13  7
    13  22
    13  30
    13  33
    13  40
    13  46
    14  22
    15  7
    15  20
    15  22
    15  30
    15  33
    15  40
    15  46
    16  22
    17  7
    17  20
    17  22
    17  30
    17  40
现在,当用户将 stateID 从 UI 发送到 sql 查询时,我需要找到常见的 PlanID 作为输出。我不知道将从 UI 发送多少 stateID(因为它完全取决于用户的复选框列表选择)
所以如果用户发送 22 和 7 那么 o/p 应该是 3,13,15,17 如果用户发送 22,20,7 那么 o/p 应该是 15,17
到目前为止我得到的查询是:
select a.*, b.* from 
 Plan_State a
 Inner join Plan_State b
 ON a.PlanID = b.PlanID
WHERE 
    (
        a.StateID =22
    ) AND 
    (
        b.StateID=7
    )
但是如果用户发送超过 2 个 stateID 怎么办。一个小提示是,我的 stateID 列表以字符串形式出现(如 22、7、20)
谢谢