我有如下情况:
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)
谢谢