mysql - 如何从具有特定条件的表中选择不同的行?

标签 mysql

我有一个包含这种格式数据的表。

+-----+----------+------------+------------+
| id  | grade_id | student_id | subject_id |
+-----+----------+------------+------------+
| 249 |        1 |         27 |          1 |
| 250 |        1 |         27 |          2 |
| 251 |        1 |         27 |          4 |
| 252 |        1 |         28 |          1 |
| 253 |        1 |         28 |          2 |
| 254 |        1 |         28 |          4 |
| 255 |        1 |         29 |          1 |
| 256 |        2 |         29 |          2 |
| 257 |        3 |         29 |          4 |
+-----+----------+------------+------------+

我需要所有 subject_id 的grade_id = 1 的student_id,我将使用该查询来获取student_id。

我需要查询的结果应该是这样的?

学生 ID

  27  
  28  

最佳答案

在 MySQL 中:

从表中选择学生 ID,其中学生 ID 不存在(从表中选择学生 ID,其中年级 ID != 1)

在 Django 中:

from django.db.models import Q
not_eligible = Model.objects.all().filter(~Q(grade_id = 1))
               .values('student_id').distinct()
eligible = Model.objects.all().filter(~Q(student_id_in = not_eligible))
           .values('student_id').distinct())
# eligible -> all student_id

关于mysql - 如何从具有特定条件的表中选择不同的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33406735/

相关文章:

php - Cake php连接查询

mysql - 如何解决这个特定的查询?

PHP - 如何修改对象数组中的category_name和subcategory_name?

php - Parsehub API PHP

javascript - 为什么将 Jquery Ajax 表中的请求发布到 MySql

mysql - 根据屏幕大小删除列

php - 在mysql中使用Distinct和Sum

php - PDO 扩展用于 CRUD 查询和 fatal error

mysql - 如何在查询语句之外从mysql查询中获取值?

php - 一次显示组标题的高效方法——PHP/MySQL/jQuery