如果没有分组,则无法单独选择行

时间:2015-12-01 00:44:10

标签: php html mysql sql select

我有一个SQL查询应该从我的学生表中获取程序,类和年份,给出两列X和Y数字。例如,如果x = 3且Y = 4,则表示学生3和4之间存在连接,为了我们的论证,我将从学生4中选择课程,班级,年份。

问题是,如果有两行,其中X和Y相等,例如:     第1行:X = 3,Y = 4     第2行:X = 3,Y = 4

(因为可能有两个连接),SELECT只会选择程序,类和年只是ONCE,而不是两次。我希望它能单独选择重复,所以我的循环稍后会回显两次。

我希望自己清楚明白!

$SQL = "
  SELECT Programme, Class, Year 
  FROM Students
  WHERE  Student_ID in (
    SELECT X
    FROM SearchStudent
    WHERE Y= '$id'
  )";

1 个答案:

答案 0 :(得分:1)

我在评论中提到的JOIN可能看起来像这样:

SELECT s.Programme, s.Class, s.Year 
FROM SearchStudent AS ss
INNER JOIN Students AS s ON ss.X = s.Student_ID
WHERE ss.Y= '$id'
;

并且不要忘记清理您的输入(即确保$ id中没有');或者更好,查看参数化查询