0

次のクエリを実行しています。

    select students.name, students.rollno, students.category as cat, `t1`.`studentid` 
    AS `studentid`,
    min(`t1`.`paperid`) AS `paper1`,
    min(`t2`.`paperid`) AS `paper2`,
    min(`t3`.`paperid`) AS `paper3`,
    min(`t4`.`paperid`) AS `paper4` from  students,
    ((((`sps` `t1` left join `sps` `t2` on(((`t1`.`studentid` = `t2`.`studentid`) and
    (`t2`.`paperid` > `t1`.`paperid`)))) left join `sps` `t3` on(((`t2`.`studentid` =
   `t3`.`studentid`) and (`t3`.`paperid` > `t2`.`paperid`)))) left join `sps` `t4`
    on(((`t3`.`studentid` = `t4`.`studentid`) and (`t4`.`paperid` > `t3`.`paperid`))))
    left join sgm on sgm.studentid=t1.studentid 
    left join str on str.studentid=t1.studentid 
    left join papers on t1.paperid=papers.p_id and papers.type='optional' 
    left join `students` `stu` on((`stu`.`studentid` = `t1`.`studentid`))) 
    where ((`stu`.`course` = '1') 
    and (`stu`.`status` = 'regular')
    and students.studentid=t1.studentid) 
    and papers.type='optional'  
    and sgm.groupid='1'
    and str.semesterid='1' 
    and str.sessionid='13' 
    group by `t1`.`studentid`  
    order by name

私がここでやろうとしていることは、テーブルから結果を取得していることです:

Students Table
| studentid  |   name |    rollno   |  category |  course |
     1           ABC        1            new         1
     2           BCD        2            old         1
     3           CDE        3            new         1

Papers Table
|  p_id  |   p_name |  type |
    p1         a       main
    p2         b       optional
    p3         c       main
    p4         d       optional
    p5         e       optional

SGM
|  id  |  studentid  | group |
    1       1            a
    2       2            a
    3       3            b

SPS
|  id  |  studentid | paper |
    1        1          p1
    2        1          p3
    3        1          p4
    4        1          p5
    5        2          p3
    6        2          p4
    7        2          p5
    8        3          p1

これらは、Students、SPS、SGM、Paper のテーブルです。クエリで私が見つけようとしているのは、情報、名前、ロールノ、猫、学生ID、紙1、紙2、紙3、および紙4を持つ必要がある各学生に対して1つの結果が必要であることです。私はこれを行うことができますが、タイプがオプションの紙だけを入手することに行き詰まっています. オプション用紙を選択するだけでいいのです。タイプは paperid で、各学生に割り当てられた論文は sps です。どうやってやるの?

用紙が割り当てられていない場合は、null 値が存在する必要があります。

4

0 に答える 0