`

SQL left join

    博客分类:
  • SQL
 
阅读更多

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 关键字 SQL LEFT JOIN 关键字 LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。 SQL LEFT JOIN 语法 SELECT column_name(s) FROM...

    sql的left join和count应用

    在SQL语言中,`LEFT JOIN` 和 `COUNT` 是两种非常重要的操作,它们在数据库查询中扮演着关键角色。在这个问题中,我们看到一个数据表 `TPL_WORD1`,它包含字段 `Wordid`(主键)、`idFuid`(上一级节点ID)和 `Name`...

    hive sql + left join 数据缺失

    ### Hive SQL Left Join 数据缺失问题解析 #### 一、问题背景 在大数据处理场景中,Hive 是一种广泛使用的工具,用于对存储在 Hadoop 文件系统中的数据进行数据汇总、查询和分析。随着Hive版本的不断更新,部分用户...

    SQL语句left join/right join/inner join 的用法比较

    在给出的示例中,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 命令详解

    SQL中的LEFT JOIN(或LEFT OUTER JOIN)是一种联接操作,用于合并两个或多个表的数据,同时保留左表(也就是在LEFT JOIN子句中指定的表)的所有行。这个命令对于数据分析和信息检索至关重要,因为它允许你获取左表的...

    Hive查询sql left join exists

    总的来说,理解和熟练运用LEFT JOIN、LEFT SEMI JOIN以及EXISTS子句是Hive SQL查询中的关键技能,它们在大数据分析中扮演着重要角色,帮助用户从海量数据中提取有价值的信息。根据实际需求选择合适的连接类型,能够...

    LINQ to SQL语句之Join和Order By

    [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...

    SQL中的left outer join,inner join,right outer join用法详解

    2. 左外连接(Left Outer Join):包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行。 3. 右外连接(Right Outer Join):包含右边表的全部行(不管左边的表中是否存在与它们...

    SQL 语法 SQL 总结 SQL教程

    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 ...

    sql中的left join及on、where条件关键字的区别详解

    LEFT JOIN(在某些数据库中称为LEFT OUTER JOIN)是一种特殊的JOIN类型,它着重于从左表(即指定的第一个表格)返回所有行,即使在右表(第二个表格)中没有匹配的记录。当右表中没有匹配时,结果列将填充NULL值。 ...

    left_join_on_and与left_join_on_where的区别

    left_join_on_and与left_join_on_where的区别

    Sql语句用left join解决多表关联问题(关联套关联,例子和源码)

    Sql语句用left join解决多表关联问题(关联套关联,例子和源码)一看就明白多表关联如何写SQl语句

    关于sql的left join,right join,inner join,outerjoin

    总之,LEFT JOIN、RIGHT JOIN、INNER JOIN和OUTER JOIN是SQL语言中的核心部分,理解和熟练运用它们对于任何数据库开发人员都至关重要。通过不断的实践和学习,你可以更好地掌握这些JOIN类型,并在解决复杂数据查询...

    SQL语句inner join,left join ,right join连接的不同之处

    在SQL语言中,连接(Join)操作是一种非常重要的数据整合方式,主要用于从两个或多个表中提取数据。根据连接方式的不同,可以分为多种类型,包括内连接(Inner Join)、左连接(Left Join)以及右连接(Right Join)...

    Left join优化规则的研究

    【Left Join 优化规则的研究】 在数据库查询优化中,Left Join 的处理是至关重要的,因为它涉及到数据的完整性和性能效率。对于应用开发人员而言,理解 Left Join 的优化规则能够提高查询效率,尤其是在某些数据库...

    MySQL在右表数据不唯一的情况下使用left join的方法

    MySQL中的LEFT JOIN是一种关联查询操作,它用于合并两个或更多表的数据,主要关注左表(第一个表)的所有记录,即使在右表(第二个表)中没有匹配的记录。LEFT JOIN的关键在于左表的所有记录都将被返回,而右表只...

    Sql 语句详解

    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时指定NULL列返回特定值详解

    在SQL查询中,LEFT JOIN操作用于连接两个或更多表,并保留左表(即第一个表)的所有记录,即使右表没有匹配的记录。当右表的某些字段在LEFT JOIN后为NULL时,我们可以利用函数来将这些NULL值替换为特定值,如0或其他...

Global site tag (gtag.js) - Google Analytics