Mysql 计数与其他表中的某些条件不匹配的行数
学生记录Mysql 计数与其他表中的某些条件不匹配的行数,mysql,Mysql,学生记录 +----+-----+-----+ | Sr | SRN | ARN | +----+-----+-----+ | 1 | ge | aj | | 2 | ge | bd | +----+-----+-----+ 回答 +----+-----+-----+ | Sr | SRN | ARN | +----+-----+-----+ | 1 | ge | aj | | 2 | ge | aj | | 3 | ge | ne | | 4 | ge
+----+-----+-----+
| Sr | SRN | ARN |
+----+-----+-----+
| 1 | ge | aj |
| 2 | ge | bd |
+----+-----+-----+
回答
+----+-----+-----+
| Sr | SRN | ARN |
+----+-----+-----+
| 1 | ge | aj |
| 2 | ge | aj |
| 3 | ge | ne |
| 4 | ge | bd |
+----+-----+-----+
我需要计算表answer
中ARN值不等于(!=)的行数
对于上述数据库,计数将为1,因为答案中的a2不在学生ARN记录的任何一行中。早上好,这里是一个工作查询:
SELECT count(*)
FROM answer AS a
LEFT JOIN student_records AS s ON a.Sr = s.Sr
WHERE s.Sr IS NULL
说明:
- 其他一些数据库有一个关键字,但其他数据库有一个减号,它提供了一个集合中不在另一个集合中的结果。MySQL没有
- 要执行类似操作,请在空行上执行左连接和筛选
- 让我们构建查询:
SELECT *
FROM answer AS a
LEFT JOIN student_records AS s ON a.Sr = s.Sr
您将获得以下信息:
Sr SRN ARN Sr SRN ARN
1 s1 a1 1 s1 a1
2 s1 a2 2 s1 a3
3 s1 a3 null null null
Sr SRN ARN Sr SRN ARN
3 s1 a3 null null null
然后添加WHERE行,您将得到以下结果:
Sr SRN ARN Sr SRN ARN
1 s1 a1 1 s1 a1
2 s1 a2 2 s1 a3
3 s1 a3 null null null
Sr SRN ARN Sr SRN ARN
3 s1 a3 null null null
最后,将SELECT更改为COUNT(*),得到1
顺便说一句,当我开始研究你的问题时,我不知道怎么做。然后谷歌帮了忙,我发现:
研究一下你的朋友 你的代码毫无意义,它只从学生记录中选择第一条记录。您需要一个带有JOIN的查询来获取您的result@YourCommonSense如何加入查询?@YourCommonSense如果我能用我的代码得到编辑,我将非常感激……如果在我的代码中编辑,我将更容易学会加入,因为我将有两种不同的代码需要理解。。。所以,我请求你@YourCommonSense在我的代码中编辑它。谢谢,也许吧。但我不是你的老师。嗯,看来会有用的,非常感谢。。。但是我犯了一个小错误。。。请再次查看我的问题,尤其是数据库…是的,您更改了表中的数据,但现在您对问题的描述不再有效(由于a2…,仍然显示为1)。根据需要调整查询(如果需要)。如果问题发生了重大变化,请接受此答案并重新开始,不要编辑旧问题。有了新的数据,我认为响应应该是2?您提到的上述代码是否会给出我想要的结果?即1为什么不运行它并查看?