gpt4 book ai didi

php - 从表中获取事件和非事件记录

转载 作者:行者123 更新时间:2023-11-29 02:40:37 26 4
gpt4 key购买 nike

我有两个表:

tbl student :

.................
id | Name |Age |
.................
1 | A |15 |
2 | B |13 |
3 | C |12 |
.................

另一个像 Tbl_student_details 的表:

.......................
id | stud_id |section |
.......................
1 | 1 |A |
2 | 1 |B |
3 | 2 |C |
.......................


Result Expected:
Active student : count (2) because id 1 and 2 have records in student detail table
Inactive Student :count(1) dont have any record in student detail table

我需要得到的是我想要活跃或不活跃的学生..

如果任何学生在 student_details 中有记录,那么需要这些学生和不活跃学生的数量哪个学生在学生详细信息表中没有记录我需要这些学生以及不活跃学生的数量我怎样才能得到这个活跃和不活跃的学生 任何人都知道我需要在 laravel DB 中进行查询::raw 如果不可能的话就建议我查询 请帮助我解决这个问题..

最佳答案

  • 为了考虑 student 表中的所有学生,您需要使用 Left Join,这样即使 中没有匹配的行>Tbl_student_details 表,你仍然会考虑所有的学生。
  • Count()函数可用于统计不活跃/活跃的学生。 Count() 函数不计算NULL 值;所以我们可以使用 Case .. When用于计算不活跃学生的表达式(NULL 因为行不匹配)。
  • 为了计算活跃学生的唯一数量,我们需要使用 Count(Distinct ..),因为 中的 stud_id 有重复的行>Tbl_student_details 表。

尝试以下查询:

SELECT 
COUNT(CASE WHEN tsd.id IS NULL THEN 1 END) AS Inactive_students,
COUNT(DISTINCT tsd.stud_id) AS Active_students
FROM
student AS ts
LEFT JOIN
Tbl_student_details AS tsd ON tsd.stud_id = ts.id

关于php - 从表中获取事件和非事件记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53001716/

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