gpt4 book ai didi

mysql - 帮助一个SQL语句

转载 作者:行者123 更新时间:2023-11-29 07:09:17 25 4
gpt4 key购买 nike

我有三个表。我们称它们为 a、b 和 a_to_b。 a_to_b 包含(除其他事项外)来自 a 和 b 的唯一 ID,以提供 a 和 b 之间的链接(显然)。 a 看起来像这样:

a_id, max_b, ...

a_to_b 看起来像:

a_id, b_id, ...

我想创建一个类似这样的查询:

select a.a_name, a.max_b, a_to_b.(number of times a_id appears in a_to_b) for a, a_to_b where ...

只是我不知道向谷歌询问如何做的正确问题。

总而言之,我不关心 b_id 在 a_to_b 中的个别出现,只关心 a_id 在该表中出现了多少次。

我希望这足够有意义,以便能够看到我正在努力完成的事情。感谢您的帮助。

编辑

现在我运行了它,我意识到我遗漏了部分查询。

这是完整的故事。抱歉之前的误导。

表A:

group_id
other_stuff

表 B:

user_id
other_stuff

表 A_to_B:

group_id
user_id
m_type (int used to determine user's role in the group)

期望的输出:

a.group_id, a_to_b.count(of group_id where m_type=4), b.user_id (user_id from a_to_b from the group_id that was grouped where m_type=2)

再次对转发表示歉意。我应该在第一次问的时候更加小心。我希望我对这些东西足够熟悉,以便能够翻译 Rasika 给出的内容,但我尝试了很多东西,而 mysql 一直对我大喊大叫。

更多编辑

我对 Rasika 写的东西做了更多的实验,然后想出了这个烂摊子:

select classes.class_id, classes.spaces - ifnull(dUtC.students,0) as openings, classes.semester_id, dUtC.teacher, users.fname, users.lname from (select teachUtC.class_id as class_id, numUtC.students as students, teachUtC.user_id as teacher from (select class_id, count(*) as students from users_to_classes where participation_level=4 group by class_id) as numUtC right join (select class_id, user_id from users_to_classes where participation_level=2) as teachUtC on teachUtC.class_id=numUtC.class_id) as dUtC, classes, users where users.user_id=dUtC.teacher and dUtC.class_id=classes.class_id

它有效,但我忍不住认为我做错了......我想知道是否有更简洁的方式来编写它。

谢谢

最佳答案

你可以使用 group by用一个计数来生成这个。

select a.a_name, a.max_b, count(*) as num_a_id from a join a_to_b on a.a_id=a_to_b.a_id group by a_id

关于mysql - 帮助一个SQL语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5545459/

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