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` 和 `COUNT` 是两种非常重要的操作,它们在数据库查询中扮演着关键角色。在这个问题中,我们看到一个数据表 `TPL_WORD1`,它包含字段 `Wordid`(主键)、`idFuid`(上一级节点ID)和 `Name`...
### Hive SQL Left Join 数据缺失问题解析 #### 一、问题背景 在大数据处理场景中,Hive 是一种广泛使用的工具,用于对存储在 Hadoop 文件系统中的数据进行数据汇总、查询和分析。随着Hive版本的不断更新,部分用户...
在给出的示例中,LEFT JOIN SQL语句是: ```sql SELECT * FROM A LEFT JOIN B ON A.aID = B.bID ``` 输出结果展示了A表的所有记录,即使B表中没有对应的bID。对于B表中不存在的aID,bName列显示为NULL。 2. RIGHT ...
SQL中的LEFT JOIN(或LEFT OUTER JOIN)是一种联接操作,用于合并两个或多个表的数据,同时保留左表(也就是在LEFT JOIN子句中指定的表)的所有行。这个命令对于数据分析和信息检索至关重要,因为它允许你获取左表的...
总的来说,理解和熟练运用LEFT JOIN、LEFT SEMI JOIN以及EXISTS子句是Hive SQL查询中的关键技能,它们在大数据分析中扮演着重要角色,帮助用户从海量数据中提取有价值的信息。根据实际需求选择合适的连接类型,能够...
[t0].[Discontinued] FROM [dbo].[Products] AS [t0] LEFT OUTER JOIN [dbo].[Suppliers] AS [t1] ON [t1].[SupplierID] = [t0].[SupplierID] WHERE ([t1].[Country] = @p0) AND ([t0].[UnitsInStock] = @p1) -- @p0...
2. 左外连接(Left Outer Join):包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行。 3. 右外连接(Right Outer 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 ...
LEFT JOIN(在某些数据库中称为LEFT OUTER JOIN)是一种特殊的JOIN类型,它着重于从左表(即指定的第一个表格)返回所有行,即使在右表(第二个表格)中没有匹配的记录。当右表中没有匹配时,结果列将填充NULL值。 ...
left_join_on_and与left_join_on_where的区别
Sql语句用left join解决多表关联问题(关联套关联,例子和源码)一看就明白多表关联如何写SQl语句
总之,LEFT JOIN、RIGHT JOIN、INNER JOIN和OUTER JOIN是SQL语言中的核心部分,理解和熟练运用它们对于任何数据库开发人员都至关重要。通过不断的实践和学习,你可以更好地掌握这些JOIN类型,并在解决复杂数据查询...
在SQL语言中,连接(Join)操作是一种非常重要的数据整合方式,主要用于从两个或多个表中提取数据。根据连接方式的不同,可以分为多种类型,包括内连接(Inner Join)、左连接(Left Join)以及右连接(Right Join)...
【Left Join 优化规则的研究】 在数据库查询优化中,Left Join 的处理是至关重要的,因为它涉及到数据的完整性和性能效率。对于应用开发人员而言,理解 Left Join 的优化规则能够提高查询效率,尤其是在某些数据库...
MySQL中的LEFT JOIN是一种关联查询操作,它用于合并两个或更多表的数据,主要关注左表(第一个表)的所有记录,即使在右表(第二个表)中没有匹配的记录。LEFT 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 约束 ...
在SQL查询中,LEFT JOIN操作用于连接两个或更多表,并保留左表(即第一个表)的所有记录,即使右表没有匹配的记录。当右表的某些字段在LEFT JOIN后为NULL时,我们可以利用函数来将这些NULL值替换为特定值,如0或其他...