需要考虑多个表格连接的时候,一条有用的思路:
常使用左连接, table1 LEFT JOIN table2 ON table1.expr1 = table2.expr2;
首要考虑的就是连接生成的表格要是自己所需要的主键,因此table1.expr1要是生成表的主键,而且这个主键要是我们整个SQL文想得到的表的最长的那一列。
eg.一张所有学生在不同课程的成绩表,所有学生id为主键,每门课是一张表,而且选的学生不一样;
要得到以上的这张总表,就需要使用连接,以包含所有学生id的表为table1,然后去连接其他课程的成绩表,条件是 table1.学生id = table课程.学生id
因为是左链接,所以table1中的学生id永远都存在,而其他表格中有成绩的就显示成绩,没有成绩的就是null。
总而言之,写多个表连接的sql文时,基本按照这个连接思路。