不确定如何为以下任务构建sql查询

ecfsfe2w  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(298)


我的数据库中有上面提到的表。我首先从上一个php页面收到一个course变量。我需要打印学生名单连同他们的学生证谁没有采取的课程。对于上面的表格,如果我收到的变量是a,那么我需要打印jake和他的学生id。作为杰克的学生id 3,与课程a无关。
我尝试了以下的查询,这似乎不起作用,我不知道我错在哪里

  1. SELECT DISTINCT T1.name, T1.student_id
  2. FROM Table 1 T1, Table 2 T2
  3. WHERE T1.student_id = T2.student_id AND
  4. T2.COURSE != :variable
  5. ORDER BY T1.name ASC,
  6. T1.student_id ASC

变量:a

mrwjdhj3

mrwjdhj31#

你可以用 NOT EXISTS 要查找未参加课程的学生列表:

  1. SELECT * FROM T1
  2. WHERE NOT EXISTS (
  3. SELECT * FROM T2
  4. WHERE T1.StudentId = T2.StudentId
  5. AND T2.Course = :variable
  6. )
  7. ORDER BY name ASC, student_id
gwbalxhn

gwbalxhn2#

有很多选择。例如,可以使用子查询:

  1. SELECT name, student_id FROM t1 WHERE student_id NOT IN (SELECT student_id FROM t2 WHERE course='A')
hmtdttj4

hmtdttj43#

我很感激这看起来很过时,但话说回来,我也是。。。

  1. SELECT DISTINCT x.*
  2. FROM t1 x
  3. LEFT
  4. JOIN t2 y
  5. ON y.student_id = x.student_id
  6. AND y.course = 'a'
  7. WHERE y.student_id IS NULL;

相关问题