我有一个SQL查询,旨在从我的学生表中获取程序、班级和年份,给定两列X和Y的数字。例如,如果x=3且y=4,则意味着学生3和4之间存在联系,并且为了我们的论点,我将从学生4中选择节目、班级和年份。
问题是,如果有两行X和Y相等,例如: 行1:X=3,Y=4 行2:X=3,Y=4
(因为可能有两个连接),SELECT语句将仅选择程序、类别和年份一次,而不是两次。我希望它可以单独选择重复的内容,以便稍后的循环可以打印出两次结果。
我希望我讲得清楚!
问题是,如果有两行X和Y相等,例如: 行1:X=3,Y=4 行2:X=3,Y=4
(因为可能有两个连接),SELECT语句将仅选择程序、类别和年份一次,而不是两次。我希望它可以单独选择重复的内容,以便稍后的循环可以打印出两次结果。
我希望我讲得清楚!
$SQL = "
SELECT Programme, Class, Year
FROM Students
WHERE Student_ID in (
SELECT X
FROM SearchStudent
WHERE Y= '$id'
)";
Students
表中进行选择引起的。每个Student_ID
在Students
表中只有一行,因此无论在SearchStudent
中有多少行,输出中只会得到一行(对于每个值)。测试仅将Students
中的每一行限定为包含或排除。正如@Uueerdo所说,如果要获取所有组合,请使用JOIN。 - TurophileLIMIT [结果数量],[偏移量]
来模拟这种行为;但是如果没有完全合格的ORDER BY
子句,那么这种方法是不可靠的。 - Uueerdo