mysql - 如何对多个表执行简单连接?

标签 mysql sql join

我有一个我确信这里是一个很好的补救性问题,但我无法在我的生活中让这个简单的连接工作。

基本上,我有 3 个表:

  • 成员(名字,姓氏),
  • MEMBER_TO_GROUP(member_id,group_id)
  • 付款(member_id、日期、金额)。

我希望从特定组中的成员那里获取所有付款。通过仅使用其中两个表,我可以找到特定组的所有 PAYMENTS,没有 MEMBER 信息,或者我可以找到所有 MEMBER 信息,没有 PAYMENT 信息。但是,当我尝试添加第三个表时,返回了错误数据(例如,我得到的成员不在组中)。这是我正在使用的基本查询:

SELECT
    p.*,
    m.first_name,
    m.last_name
FROM
    members m,
    payments p,
    member_to_group mg
WHERE
    mg.group_id = 12
    AND mg.member_id = p.member_id
    AND m.member_id = p.member_id

我不确定断开连接的位置,但非常感谢任何帮助。

最佳答案

我想这应该能得到你想要的:

SELECT p.*,
       m.first_name,
       m.last_name
FROM payments p
INNER JOIN members m
  ON m.member_id = p.member_id
INNER JOIN member_to_group mg
  ON mg.member_id = m.member_id
WHERE mg.group_id = 12

关于mysql - 如何对多个表执行简单连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7930603/

相关文章:

sql - 来自 PostgreSQL jsonb 数组的值查询

mysql - 缺少结尾,无法执行mysql交叉连接

mysql - 我的 SQL 计数查询出了什么问题?

php - 每个键值循环自增

mysql 错误不断出现 - #1241- 操作数应包含 1 列 - 这是什么意思?

sql - 在SQL中将大数据集分成相等的列表

php - 数据库列内的静态值

重复滚动连接而不循环

mysql - 检索包含不止一次一起出现的 object_id 列表的列和包含它出现次数的计数的第二列

mysql - tecdoc 查询需要超过 5 分钟