MySQL中的join以及on条件的用法

join 经常用来做关联查询,可以把两张或者多张表用通过关联条件关联起来做数据查询
在使用join查询的时候要区分主表和附表,jion ...on .....and
on: 表之间的关联条件
and:对附表做筛选

innor join

内连接,两个关联的表都为主表,所以他们的做条件筛选的顺序是:先连接,后筛选。此时 join ...on ... and =join...on... where ....

SELECT
    acol.order_line_id,
    acoh.order_header_id,
    acoh.customer_name 
FROM
    acrm_customer_order_line acol
    JOIN acrm_customer_order_header acoh ON acol.order_header_id = acoh.order_header_id 

left join

左连接,这时候左边的表就是主表,所以,主表的数据会全部展示出来,右边的表为附表,此时on连接后在通过and进行筛选的条件对主表不起作用,只对附表起作用。先筛选再连接

SELECT
    acol.order_line_id,
    acoh.order_header_id,
    acoh.customer_name 
FROM
    acrm_customer_order_line acol
    LEFT JOIN acrm_customer_order_header acoh ON acol.order_header_id = acoh.order_header_id 

right join

右连接,右边的表为主表,左边表变成附表,如果on后面又and 做筛选条件的话,和left join一样 也是先筛选后连接。

你可能感兴趣的:(MySQL中的join以及on条件的用法)