从具有不同外键的mysql表中交替获取值

时间:2013-07-25 05:08:11

标签: mysql

我有两张下面的表格

classid int autoincrement primary key
classname varchar

学生

studentid int autoincrement primary key
studentname varchar
classid int foreign key references classes

我希望在一个查询中交替地从选定班级的表学生中获取studentid。如果选择的classids是1,2,3那么我想要classid 1中的studentid然后2然后3再次从1开始然后是2然后3再次从1开始,依此类推。如何编写查询以获得结果

                studentid               classid
                  id1                      1
                  id2                      2
                  id3                      3
                  id4                      1
                  id5                      2
                  id6                      3
                  id7                      1      

2 个答案:

答案 0 :(得分:0)

通过Queryt我不知道,但你可以这样做,

点火查询,你会得到所有的Ids来取回,说是[5,9,10]。 totalNumberOfIdsYouGot = 3(此处数组的总大小)

for(int i=0; i<numberOfTimesItShouldIterate; i++){
    for(int j=0; j<totalNumberOfIdsYouGot.length; j++){
        //Here fire single Query, change only ids each time as totalNumberOfIdsYouGot[j]           
    }
}

答案 1 :(得分:0)

我不认为你可以在Mysql中做到这一点。 Oracle作为connect by语句,通过它您可以实现此目的。
我认为你需要使用一个过程来填充这个结果的表。然后选择
您可以使用两个游标并在Stored Procedure

中实现此目的