gpt4 book ai didi

mysql - 两个不同的表连接到一个主表

转载 作者:行者123 更新时间:2023-11-29 23:49:08 24 4
gpt4 key购买 nike

我有三张 table :

  • 团体 (group_id, group_name)
  • 类(class) (类(class) ID、组、类(class)名称)
  • 测试 (test_id, group, test_name)

  • 因此,在一个小组中,可能会有很多类(class)和测试。现在我想在 SINGLE QUERY 中获得每组的类(class)数量和测试数量。

    这是我的做法:

    选择 group_id, group_name, COUNT(lessons.lesson_id), COUNT(tests.test_id)
    从组

    LEFT JOIN 类(class) on Lessons.group = groups.group_id

    在 tests.group = groups.group_id 上左连接测试

    GROUP BY groups.group_id

    但它为两个 COUNT 返回错误的值。如果我只为类(class)或测试运行相同的查询,它会返回正确的但不能同时使用单个查询。

    更新

    Rishabh 回答了这个问题,效果很好。如果我不必使用聚合函数,即在单个查询中获取所有类(class)和测试时怎么办?

    选择 group_id、group_name、lesson.lesson_name、tests.test_name
    从组

    LEFT JOIN 类(class) on Lessons.group = groups.group_id

    在 tests.group = groups.group_id 上左连接测试

    这会导致结果中出现重复记录。有什么建议吗?

    GROUP BY groups.group_id

    最佳答案

    SELECT group_id, group_name, COUNT(DISTINCT Lessons.lesson_id), COUNT(DISTINCT tests.test_id) FROM groups

    LEFT JOIN 类(class) on Lessons.group = groups.group_id

    在 tests.group = groups.group_id 上左连接测试

    GROUP BY groups.group_id

    关于mysql - 两个不同的表连接到一个主表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25741624/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com