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

Noc*_*gam 5 html php 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'
  )";
Run Code Online (Sandbox Code Playgroud)

Uue*_*rdo 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'
;
Run Code Online (Sandbox Code Playgroud)

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