Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何基于输入数组在双向多对多关系中选择多个值_Mysql_Sql_Arrays_Database_Union All - Fatal编程技术网

Mysql 如何基于输入数组在双向多对多关系中选择多个值

Mysql 如何基于输入数组在双向多对多关系中选择多个值,mysql,sql,arrays,database,union-all,Mysql,Sql,Arrays,Database,Union All,如何使下面的select语句一次处理多个输入(一个列表),并且仍然返回与单个输入类似的结果列表 已经过了几个小时了,我被卡住了——我需要帮助编写一个mysql语句,以便从找到“链接”的表中检索ID列表 这个问题背后的想法是向查询提供一个id值数组,并让查询返回所有其他id,这些id从表的两侧链接到从数组传入的每个id,并以逗号表示的列表中 表格结构“团队权限” 使用“每个团队获取权限”sql语句——需要将一个列表输入到此 SELECT first_teamID AS team_permissio

如何使下面的select语句一次处理多个输入(一个列表),并且仍然返回与单个输入类似的结果列表

已经过了几个小时了,我被卡住了——我需要帮助编写一个mysql语句,以便从找到“链接”的表中检索ID列表

这个问题背后的想法是向查询提供一个id值数组,并让查询返回所有其他id,这些id从表的两侧链接到从数组传入的每个id,并以逗号表示的列表中

表格结构“团队权限”

使用“每个团队获取权限”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)将产生 结果:[112119]
  • (?=117)将 产生结果:[118]
  • (?=119)将 产生结果:[112113114]
预期的多输入->输出示例

first_teamID  |  second_teamID
  113         |     112
  114         |     112
  118         |     117
  119         |     112
  119         |     113
  119         |     114
  • (?=[112113])将产生结果:[112113, 114、119]
  • (?=[113119])将产生结果:[112113114119]
  • (?=[112114118])将产生结果:[112113114117119]

只需使用
中的
,例如:

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)

您正在寻找mysql中不存在的pivot函数。您可以通过发出多个查询,以编程方式执行此操作。看看这里的一些例子:这里:我知道这个问题有一个简单的答案。谢谢蒂姆!WHERE IN子句起了作用。