inner join on, left join on, right join on的使用

inner join(等值连接) 只返回两个表中联结字段相等的行

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录

right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录


INNER JOIN 语法:
INNER JOIN 连接两个数据表的用法:
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号

INNER JOIN 连接三个数据表的用法:
SELECT * FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号

INNER JOIN 连接四个数据表的用法:
SELECT * FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN
表4 ON Member.字段号=表4.字段号

INNER JOIN 连接五个数据表的用法:
SELECT * FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表5 ON Member.字段号=表5.字段号

(SELECT t6.f25 as 'ht',sum(t5.F05) ty from t6056 t5 inner join t6036 t6 on t5.F02 = t6.F01 where (t5.F10 = 'WS' and t6.F31< str_to_date('2016-12-01 00:00:00','%Y-%m-%d %H:%i:%s')) 
or (t5.F10 = 'YS' AND t5.F09 >= str_to_date('2016-12-01 00:00:00','%Y-%m-%d %H:%i:%s') and t6.F31< str_to_date('2016-12-01 00:00:00','%Y-%m-%d %H:%i:%s')) and (t5.f08>= str_to_date('2015-10-01 00:00:00','%Y-%m-%d %H:%i:%s')
and t5.f08 < str_to_date(now(),'%Y-%m-%d %H:%i:%s'))
group by t6.f25 having F25 is not null order by ty desc limit 0,10)
union all
(SELECT t6.F52 as 'ht',sum(t5.F05) ty from t6056 t5 inner join t6036 t6 on t5.F02 = t6.F01 where ((t5.F10 = 'WS' and t6.F31< str_to_date('2016-12-01 00:00:00','%Y-%m-%d %H:%i:%s')) 
or (t5.F10 = 'YS' AND t5.F09 >= str_to_date('2016-12-01 00:00:00','%Y-%m-%d %H:%i:%s') and t6.F31< str_to_date('2016-12-01 00:00:00','%Y-%m-%d %H:%i:%s'))
and (t5.f08>= str_to_date('2015-10-01 00:00:00','%Y-%m-%d %H:%i:%s') and t5.f08 < str_to_date(now(),'%Y-%m-%d %H:%i:%s'))
) and t6.F52 is not null and t6.F25 is null group by t6.F52 
order by ty desc limit 0,10)
order by ty desc limit 0,10

猜你喜欢

转载自pbd.iteye.com/blog/2338964