JOIN…ON 连接方式: ON表示两表的关联条件
左连接(LEFT JOIN):查询时以左边为源表与右表进行匹配查询,左包含即左表有但右表没有的数据。
select t1.stuName,score from t_stu t1 LEFT JOIN t_score t2 ON t1.stuId=t2.stuId右链接 (RIGHT JOIN):查询时以右表为源表与左表进行匹配查询,右包含。
select t1.stuName,score from t_stu t1 RIGHT JOIN t_score t2 on t1.stuId=t2.stuId内连接(INNER JOIN):获取两个表的交集,即同时在聊表中都存在的数据
select t1.stuName,score from t_stu t1 INNER JOIN t_score t2 on t1.stuId=t2.stuId
关于全连接 FULL JOIN: ORICLE 支持,但 MYSQL 不支持,全连接是指将两表的全部数据拼接起来,包含 NULL ,MYSQL 中可以用 UNION 代替。
# ORICLE select t1.stuName,score from t_stu t1 FULL JOIN t_score t2 ON t1.stuId=t2.stuId # MYSQL select t1.stuName,score from t_stu t1 LEFT JOIN t_score t2 ON t1.stuId=t2.stuId UNION select t1.stuName,score from t_stu t1 RIGHT JOIN t_score t2 ON t1.stuId=t2.stuIdUNION 与 UNION ALL 的区别:
UNION :关键字的查询结果不包含重复项且按照默认规则进行排序UNION ALL :查询结果包含重复项,且不进行排序