table teacher
tid name
1 tom
2 jack
table student
id name tid
1 lily 1
2 kite 1
我想找到所有tom教的学生列表
select
t.name,
s.id,
s.name
from
teacher t left join student s on (t.tid = s.tid and t.tid=1)
看上去貌似很对
结果:
tom 1 lily
tom 2 kite
jack null null
你会发现多了一条 jack null null 的记录,这也是对left join 工作原理不了解的缘故了。
改成这样结果就对了
select
t.name,
s.id,
s.name
from
teacher t left join student s on (t.tid = s.tid)
where
t.tid = 1
我们可以想象left join 是这样工作的
从左表(teacher表)读出一条,选出所有与on匹配的右表(student表)纪录(n条)进行连接,形成n条纪录(包括重复的行)
如果右边没有与on条件匹配的表,那连接的字段都是null.
http://www.ccvita.com/90.html
分享到:
相关推荐
SQL LEFT JOIN 关键字 SQL LEFT JOIN 关键字 LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。 SQL LEFT JOIN 语法 SELECT column_name(s) FROM...
SQL语句left join/right join/inner join 的用法比较 SQL语句left join/right join/inner join 的用法比较
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
是sql语句的一些基本应用,是一道练习题,内附有答案
里面 一个例子,说了几个需求,基本能符合,我要使用的功能,左外连接,还有exists替代方案,都很实用,结合文档看一下。
SQL中的left outer join,inner join,right outer join用法详解
hive sql + left join 数据缺失
SQL Left Join SQL Right Join SQL Full Join SQL Union SQL Select Into SQL Create DB SQL Create Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL ...
inner join、 left join 、right join、 outer join之间的区别
LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。这篇文章主要介绍了sql中的left join以及on、where关键字的区别,需要的朋友可以参考下
left_join_on_and与left_join_on_where的区别
Sql语句用left join解决多表关联问题(关联套关联,例子和源码)一看就明白多表关联如何写SQl语句
SQL语句inner join,left join ,right join连接的不同之处, 非常实用
18. SQL LEFT JOIN 关键字 23 19. SQL RIGHT JOIN 关键字 24 20. SQL UNION 和 UNION ALL 操作符 26 21. SQL SELECT INTO 语句 28 22. SQL CREATE DATABASE 语句 29 23. SQL CREATE TABLE 语句 29 24. SQL 约束 ...
主要介绍了MySQL在右表数据不唯一的情况下使用left join的方法,针对右表符合条件表达式的记录数大于1条时left join所显示的结果需求来讲,需要的朋友可以参考下
我们有时会有这样的应用,需要在sql的left join时,需要使值为NULL的列不返回NULL而时某个特定的值,比如0。这个时候,用is_null(field,0)是行不通的,会报错的,可以用ifnull实现,但是COALESE似乎更符合标准
9.1.9 解释 SQL 的 left join 和 right join
文章目录SQL 连接(JOIN)不同的 SQL JOINSQL INNER JOIN 关键字SQL LEFT JOIN 关键字SQL RIGHT JOIN 关键字SQL FULL OUTER JOIN 关键字 SQL 连接(JOIN) SQL join 用于把来自两个或多个表的行结合起来。 下图展示了 ...
SQL语句优化——in,not in,exists,not exists, left join...on博客所需SQL语句.txt欢迎下载!