gpt4 book ai didi

mysql - 即使使用带有内部连接的 Distinct 关键字,也会出现重复值

转载 作者:行者123 更新时间:2023-11-29 22:10:02 24 4
gpt4 key购买 nike

学生表。

|雷格诺 |名称 |名称 |地址|性别|移动 |

预订表

书名 |雷格诺 | token 号 |入住 |结账

我正在尝试获取两个给定日期之间在场的女学生人数。我尝试获取相应的值,但即使使用不同的关键字,它也会输出重复的值。我也尝试过使用 Union,但它的作用仍然与 Distinct 相反。

 SELECT  count(gender) FROM (SELECT  distinct regno from student where 
gender = 'Male' union SELECT Distinct regno from book) x LEFT OUTER JOIN
student a on x.regno = a.regno LEFT OUTER JOIN book b on x.regno = b.regno
where checkIn >= '2015/7/23' AND checkOut <= '2015/7/31';

这是我尝试过的另一个

 SELECT count(gender) FROM (SELECT  distinct(regno), gender from student
where gender = 'Male' ) AS A inner JOIN book AS B On A.regno = B.regno
where checkIn >= '2015/7/23' AND checkOut <= '2015/7/31';

最佳答案

看起来您将一个简单的查询过于复杂化了。您所需要做的就是连接表格并根据日期和性别进行筛选并应用计数。

SELECT COUNT(DISTINCT s.regno) 
FROM student s
JOIN booking b on s.regno = b.regno
WHERE s.gender = 'Female'
AND b.checkIn >= '2015/7/23' AND b.checkOut <= '2015/7/31';

distinct 关键字可确保每个学生在一段时间内有多个预订时仅计算一次。如果您想计算所有预订,只需删除 distinct

关于mysql - 即使使用带有内部连接的 Distinct 关键字,也会出现重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31774326/

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