gpt4 book ai didi

sql - 如何避免在连接两个表时出现重复

转载 作者:行者123 更新时间:2023-12-01 08:37:12 25 4
gpt4 key购买 nike

Student Table

SID Name
1 A
2 B
3 C

Marks Table

id mark subject
1 50 physics
2 40 biology
1 50 chemistry
3 30 mathematics



SELECT distinct(std.id),std.name,m.mark, row_number() over() as rownum FROM

student std JOIN marks m ON std.id=m.id AND m.mark=50

即使使用Disticnt,结果也是A的2倍。我的预期结果将只有一个A。如果我将row_number()over()删除为rownum,它的工作效果很好。为什么会这样呢?如何解决。我正在使用DB2!

最佳答案

标记表中有两行,id为1,标记=50。因此,对于学生表中的每一行,您将在输出中得到两行...
如果只想要一个,则必须进行分组

 SELECT std.id, std.name, m.mark, row_number() 
over() as rownum
FROM student std
JOIN marks m
ON m.id=std.id AND m.mark=50
Group By std.id, std.name, m.mark

关于sql - 如何避免在连接两个表时出现重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8099747/

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