gpt4 book ai didi

多个表中的 SQL 不同值

转载 作者:行者123 更新时间:2023-11-29 12:43:43 27 4
gpt4 key购买 nike

我在一些 SQL 工作上有点卡住了。基本上,我有 3 个不同的表,看起来像这样:(注意:“编号”应该是一本书的 ID 号,重复的数字意味着它是同一本书。为了简单。)

表A:

Number Name    Surname
1 Bob Bobinson
1 Paul Paulster
2 Simon Simones
3 Anton Antonio
etc.

表 B:

Number   Book
1 Taken
1
1
2 Taken
2 Taken
3
3 Taken
3 Taken
etc.

表 C:

Number      Pages
1 245
2 147
3 512
etc.

我需要做的是为每个不同的姓名和姓氏计算他们的数字在表 B 中重复的次数,然后计算每个的总页码。答案表应如下所示:

Bob Bobinson 3 735
Paul Paulster 3 735
Simon Simones 2 294
Anton Antonio 3 1536

我试过这样的:

SELECT Name, Surname, Count(A.Number = B.Number) FROM A, B, C;

是的,老实说:我完全不知道它需要是什么样子。之后我尝试实现 WHILE A.Number = B.Number,但它对我不起作用。任何帮助将不胜感激。

附言“Taken”是为了稍后检查哪个数字的数量最多。

最佳答案

这应该得到你想要的:

select A.Name, B.Surname, count(*), C.Pages
from TableA
Join TableB on A.Number = B.Number
Join TableC on A.Number = C.Number
group by A.Name, B.Surname, C.Pages;

或者,如果子查询可以使后续更改更​​容易,您也可以使用子查询来完成此操作,但一般来说,这些操作的效果不佳:

select A.Name, B.Surname,
(select count(*)
from TableBB
where B.Number = A.Number) As CNT,
C.Pages
from TableA
Join TableC on A.Number = C.Number;

关于多个表中的 SQL 不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36569182/

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