如果sql中只有少量行匹配,则获取所有行

时间:2016-02-29 16:52:18

标签: php mysql sql

我有以下两个表:

表1:

student_id    Name
...................
1             Kumar
2             kishan
3             Mohan
4             Kanha
5             Murat

表2:

student_id      is_attend
.........................
1               1
4               1

表2列出了具有上学身份的学生。 以下是我们希望得到的结果。这样我们就可以通过PHP显示每个学生的出勤率。

结果:

student_id      is_attend
..........................
1               1
2               0
3               0
4               1

4 个答案:

答案 0 :(得分:1)

使用Left join,如下所示:

Select Table1.*,Table2.is_attend
from Table1
left join Table2
on Table1.student_id = Table2.student_id

答案 1 :(得分:1)

select T1.student_id,T2.is_attend from 
          table1 T1 left join 
          table2 T2 on 
          T1.student_id=T2.student_id;

答案 2 :(得分:0)

您也可以使用子查询:

select s.student_id,
         (select IFNULL(is_attend,0) from attend where student_id=s.student_id) as is_attend 
    from student as s

答案 3 :(得分:0)

您可以使用以下查询:

SELECT      t1.student_id,
            t1.Name,
            IFNULL(t2.is_attend,0)
FROM        Table1 t1
LEFT JOIN   Table2 t2 ON t1.student_id = t2.student_id

你可以在这里看到 - > http://sqlfiddle.com/#!9/86511/2

希望这有帮助!!!