数据库的表都是单独存在的,但是当我们进行联合查询(多表查询)时,我们获得数据库返回的值时就好像在一张表里一样,这是因为在进行联合查询时数据库会生成一个临时表返回给我们所想要的数据信息,这时我们都是通过LEFT JOIN 等语句进行相关联,并且我们也会为我们所想查询的数据进行一个筛选,这时我们就会用到过滤语句。
LEFT JOIN ON WHERE:在临时表生成后,再对临时表的数据进行过滤,再返回左表。
LEFT JOIN ON AND:在临时表生成的过程时,ON中的条件不管是否为真,都将返回左表。
例如:
表1.id 表1.value 表2.value 表2.name
1 100 100 一
2 200 200 二
3 300 300 三
4 400 400 四
SQL语句如下:
[1] SELECT * FROM 表1 LEFT JOIN 表2 ON (表1.value = 表2.value) WHERE 表2.name = 一
[2] SELECT * FROM 表1 LEFT JOIN 表2 ON (表1.value = 表2.value) ON 表2.name = 一
当执行[1]的时候得:
表1.id 表1.value 表2.value 表2.name
1 100 100 一
当执行[2]的时候得:
表1.id 表1.value 表2.value 表2.name
1 100 100 一
2 200 NULL NULL
3 300 NULL NULL
4 400 NULL NULL