我有这三个表:
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 JOIN
或FULL OUTER JOIN
,具体取决于您确切想要的数据。
您可以使用左JOIN ,而不是内部join 。联接类型的差异
您必须使用左JOIN上的左JOIN,就像您的情况pass
一样,是主表(携带大部分数据(。这意味着当完成pass left join...other tables
时,通行表的数据都匹配AMD无与伦比的数据将是输出。
,而
内部连接提供的数据仅与其他表数据匹配。pass innerjoin other tables
将仅来自两个表的数据匹配,但没有无与伦比的数据(当您将左图加入时,它给出了左表 匹配的两个表的无与伦比的数据,同样正确,反之亦然(