我有一个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'
)";
答案 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中没有'
);或者更好,查看参数化查询