如何使用SQL连接组合表



我有这三个表:

Student

student_id 012345
name       Lee
class      5A
gender     Male
nohp       011-1111111

笔记本电脑

idborrow    5
student_id  012345  
no_laptop   LP12345
lend_date   01/08/2019
pass_date   NULL
send_date   01/11/2019       

PASS

idborrow    5
student_id  012345
no_laptop  LP12345
lend_date  01/08/2019 
pass_date  01/08/2019   
send_date  01/11/2019

我想加入统计数据中的表格(如果老师不批准(:

student_id  012345 
name        Lee   
class       5A    
gender      Male    
nohp        011-1111111    
idborrow    5      
no_latop   LP12345 
lend_date  01/08/2019
pass_date  NULL  
send_date  01/11/2019

,如果老师批准他,那就是这样:

student_id  012345 
name        Lee   
class       5A    
gender      Male    
nohp        011-1111111    
idborrow    5      
no_latop   LP12345 
lend_date  01/08/2019
pass_date  01/08/2019  
send_date  01/11/2019

我使用编码:

$query=”select * from student 
        inner join book on student.student_id=book.student_id”

但是,它仅显示表格dast_date为null。如果我使用:

$query=”select * from student 
        inner join book on student.student_id=book.student_id 
        inner join pass on book.student_id=pass.student_id”

它仅显示在通过表上有数据,但没有显示通过表格为null。

这是因为,您正在使用INNER JOIN。请阅读本文。您应该使用LEFT JOINFULL OUTER JOIN,具体取决于您确切想要的数据。

您可以使用左JOIN ,而不是内部join 。联接类型的差异

您必须使用左JOIN上的左JOIN,就像您的情况pass一样,是主表(携带大部分数据(。这意味着当完成pass left join...other tables时,通行表的数据都匹配AMD无与伦比的数据将是输出。

,而

内部连接提供的数据仅与其他表数据匹配。pass innerjoin other tables将仅来自两个表的数据匹配,但没有无与伦比的数据(当您将左图加入时,它给出了左表 匹配的两个表的无与伦比的数据,同样正确,反之亦然(

相关内容

  • 没有找到相关文章

最新更新