MySQL 选择在其他表中有两个匹配的列

标签 mysql

如果这个问题已经解决,我很抱歉,但我不知道如何正确表达我的问题或我应该搜索什么。

所以我有 2 个表:

群组

id | name

成员(member)资格

id | user_id | group_id

我想要做的是找到 id 为 1 的用户所属的所有组以及 id 为 2 的用户所属的所有组。 显然这是行不通的:

SELECT groups.id FROM groups, memberships WHERE groups.id = memberships.group_id AND memberships.user_id = 1 AND memberships.user_id = 2;

我希望您能理解我的问题,我无法找到合适的词语来解决这个问题。欢迎询问。

编辑:两个用户都应该是该组的成员。

最佳答案

如果我没理解错的话,您需要两个用户都是成员的群组吗?

类似于:

SELECT g1.id 
FROM groups g1, memberships m1, groups g2, memberships m2
WHERE m1.group_id = g1.id AND m1.user_id = 1
AND m2.group_id = g2.id AND m2.user_id = 2
AND g1.group_id = g2.group_id;

关于MySQL 选择在其他表中有两个匹配的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726462/

相关文章:

php - 将 List 组件转换为列表

java - Android:RESTful JDBC 代理。性能和安全性

PHP 设置 cookie 未被设置

php - 这个数据库调用有什么问题?

php - 我怎样才能防止这个脚本被随意访问?

php - SQL查询返回混合表

sql - 根据日期从表中选择数据

mysql - 检查 key 是否存在,然后插入或更新

mysql - Sql 计算两列的行数,其中 col1 与 col2 相同

mysql - Rikulo支持mysql数据库吗?