Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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_Database - Fatal编程技术网

Mysql 如何检查两个多对多表的相交?

Mysql 如何检查两个多对多表的相交?,mysql,sql,database,Mysql,Sql,Database,我正在尝试创建一个查询,但我目前正在努力解决这个问题。 我有说多种语言的用户,他们属于许多团队。 我的团队有很多用户,因此使用多种语言 我想让所有至少会说团队中一种语言的用户,其中team.id=10 如果有匹配项,我想获得用户所说的所有语言,不仅是team\u拥有\u语言和user\u拥有\u语言。 我当前使用的查询是: select * from user inner join user_has_language on user.id = user_has_language.user_id

我正在尝试创建一个查询,但我目前正在努力解决这个问题。 我有说多种语言的用户,他们属于许多团队。 我的团队有很多用户,因此使用多种语言

我想让所有至少会说团队中一种语言的用户,其中
team.id=10
如果有匹配项,我想获得用户所说的所有语言,不仅是
team\u拥有\u语言
user\u拥有\u语言
。 我当前使用的查询是:

select * from user 
inner join user_has_language on user.id = user_has_language.user_id
where user_has_language.language_id in 
(select language_id from team inner join team_has_language on team.id = team_has_language.team_id
where team.id = 10);
查询有效,但只提供了语言的交叉点。 有人知道吗

我正在使用MySQL

这是我的数据库图。 这是一种方法:

select u.*, ul.*
from user u join
     user_has_language ul
     on ul.id = ul.user_id
where u.id in (select ul.user_id
               from user_has_language ul
               where ul.language_id in
                     (select thl.language_id
                      from team_has_language thl
                      where thl.team_id = 10
                     )
              );