如何 select 基于输入数组的双向多对多关系中的多个值
How to select multiple values in a bidirectional many to many relationship based on input array
如何使下面的 select 语句一次处理多个输入(一个列表)并且仍然 return 与单个输入的结果列表相似
已经好几个小时了,我被困住了 - 我需要帮助编写 mysql 语句以从 table 中检索 ID 列表,其中找到了“link” .
这个问题背后的想法是向查询提供一个 id 值数组,并从 [=65= 的两侧return 获得所有其他 linked 的 id ], 到从数组传入的每个 id 到一个逗号分隔的列表中。
table结构“team_permissions”
first_teamID | second_teamID
113 | 112
114 | 112
118 | 117
119 | 112
119 | 113
119 | 114
正在处理“获取每个团队的权限”sql 语句 -- 需要将列表输入此
SELECT first_teamID AS team_permissions
FROM team_permissions
WHERE second_teamID = ?
UNION ALL
SELECT second_teamID AS team_permissions
FROM team_permissions
WHERE first_teamID = ?
预期单输入 -> 输出示例 - 这有效
- (? = 112) 将产生结果:[113,
114、119]
- (? = 113) 将产生
结果:[112, 119]
- (?=117) 将
产生结果:[118]
- (?=119) 将
产生结果:[112, 113, 114]
预期的多个输入 -> 输出示例
- (? = [112, 113] ) 将产生结果:[112, 113,
114、119]
- (? = [113, 119] ) 将产生结果:[112, 113, 114, 119]
- (? = [112, 114, 118] ) 将产生结果:[112, 113, 114, 117, 119]
team_permissions table structure
只需使用WHERE IN
,例如:
SELECT first_teamID AS team_permissions
FROM team_permissions
WHERE second_teamID IN (113, 119)
UNION ALL
SELECT second_teamID AS team_permissions
FROM team_permissions
WHERE first_teamID IN (113, 119)
如何使下面的 select 语句一次处理多个输入(一个列表)并且仍然 return 与单个输入的结果列表相似
已经好几个小时了,我被困住了 - 我需要帮助编写 mysql 语句以从 table 中检索 ID 列表,其中找到了“link” .
这个问题背后的想法是向查询提供一个 id 值数组,并从 [=65= 的两侧return 获得所有其他 linked 的 id ], 到从数组传入的每个 id 到一个逗号分隔的列表中。
table结构“team_permissions”
first_teamID | second_teamID
113 | 112
114 | 112
118 | 117
119 | 112
119 | 113
119 | 114
正在处理“获取每个团队的权限”sql 语句 -- 需要将列表输入此
SELECT first_teamID AS team_permissions
FROM team_permissions
WHERE second_teamID = ?
UNION ALL
SELECT second_teamID AS team_permissions
FROM team_permissions
WHERE first_teamID = ?
预期单输入 -> 输出示例 - 这有效
- (? = 112) 将产生结果:[113, 114、119]
- (? = 113) 将产生 结果:[112, 119]
- (?=117) 将 产生结果:[118]
- (?=119) 将 产生结果:[112, 113, 114]
预期的多个输入 -> 输出示例
- (? = [112, 113] ) 将产生结果:[112, 113, 114、119]
- (? = [113, 119] ) 将产生结果:[112, 113, 114, 119]
- (? = [112, 114, 118] ) 将产生结果:[112, 113, 114, 117, 119]
team_permissions table structure
只需使用WHERE IN
,例如:
SELECT first_teamID AS team_permissions
FROM team_permissions
WHERE second_teamID IN (113, 119)
UNION ALL
SELECT second_teamID AS team_permissions
FROM team_permissions
WHERE first_teamID IN (113, 119)