1、先创建两个临时表,并插入数据

CREATE TABLE #TEMP1
(
ID INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(50)
)

CREATE TABLE #TEMP2
(
ID INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(50)
)

INSERT INTO #TEMP1
( name )
VALUES (
N'A' -- name - nvarchar(50)
),('B')

INSERT INTO #TEMP2
( name )
VALUES (
N'A' -- name - nvarchar(50)
),('B'),('C'),('B'),('C')

2、

#TEMP1 记录如下

ID name

1 A
2 B

#TEMP2 记录如下

ID name

1 A
2 B
3 C
4 B
5 C

3、内连接 记录如下

SELECT T1.ID,T1.name FROM #TEMP1 AS T1 INNER JOIN #TEMP2 AS T2 ON T1.name=T2.name

ID name

1 A
2 B
2 B

4、左连接 记录如下

SELECT T1.ID,T1.name FROM #TEMP1 AS T1 LEFT JOIN #TEMP2 AS T2 ON T1.name=T2.name

ID name

1 A
2 B
2 B

结果说明:

1、Left Join(左联接)
以左表为中心,返回左表中符合条件的所有记录以及右表中联结字段相等的记录——当右表中无相应联接记录时,返回空值。
2、Inner Join(等值连接)
返回两个表中联结字段相等的行。

注意:如出现重复结果列,要从出现重复源头表的列,开始过滤!

先找出重复的列

SELECT name FROM #TEMP2 GROUP BY name  HAVING COUNT(1)>1

再用EXISTS 和NOT IN UNION ALL

SQL 表连接查询出现重复列,由此理清LEFT JOIN、INNER JOIN的区别的更多相关文章

  1. SQL表连接查询(inner join、full join、left join、right join)

    SQL表连接查询(inner join.full join.left join.right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner ...

  2. SQL表连接查询

    SQL表连接查询(inner join.full join.left join.right join) 表的数据有: 一.内连接-inner jion : 最常见的连接查询可能是这样,查出学生的名字和 ...

  3. SQL表连接查询inner join left join right join full join ...

    一.最常见的连接查询 select  s.name,m.mark from student s,mark m  where s.id=m.studentid. 二.内连接-inner join sel ...

  4. SQL表连接查询(inner join(join)、full join、left join、right join、cross join)

    下面列出了您可以使用的 JOIN 类型,以及它们之间的差异. JOIN: 如果表中有至少一个匹配,则返回行(join=inner join) LEFT JOIN: 即使右表中没有匹配,也从左表返回所有 ...

  5. oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图

        多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所 ...

  6. SQL多表连接查询以及mysql数据库、sqlserver数据库常见不同点

    mysql数据库表及数据准备语句: USE test; DROP TABLE IF EXISTS `teacher_table`; DROP TABLE IF EXISTS `student_tabl ...

  7. oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图

    多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所在的部门 ...

  8. 010.简单查询、分组统计查询、多表连接查询(sql实例)

    -------------------------------------day3------------ --添加多行数据:------INSERT [INTO] 表名 [(列的列表)] --SEL ...

  9. SQL多表连接查询(详细实例)

    转载博客:joeleo博客(http://www.xker.com/page/e2012/0708/117368.html) 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:stud ...

随机推荐

  1. the user operation is waiting

    eclipse在编辑完代码保存的时候,弹出一个进度框,等N长时间,标题是"user operation is waiting",里面显示的是building workspace的进 ...

  2. c# 判断访问来源是否来自手机

    public Boolean IsMobileDevice() { string[] mobileAgents =new []{ "iphone", "android&q ...

  3. angualr 实现tab选项卡功能

    tab.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  4. 架构师养成记--8.Queue

    一.ConcurrentLinkedQueue 是一个适合在高并发场景下,无锁,无界的,先进先出原则.不允许为null值,add().offer()加入元素,这两个方法没区别:pull().peek( ...

  5. Linux sudo 命令的应用

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  6. ASP.NET Forms 身份验证

    ASP.NET Forms 身份验证 在开发过程中,我们需要做的事情包括: 1. 在 web.config 中设置 Forms 身份验证相关参数.2. 创建登录页. 登录页中的操作包括: 1. 验证用 ...

  7. Java中如何把一下字符串转换成map

    首先,你先确认你的字符串是否是json格式的,如果是json格式,那你可以使用Gson.jar或json-lib-xx-jdk.jar两个包来自动解析解析. 使用Gson更简单些,只需要导入一个包就可 ...

  8. Django基础,Day2 - 编写urls,views,models

    编写views views:作为MVC中的C,接收用户的输入,调用数据库Model层和业务逻辑Model层,处理后将处理结果渲染到V层中去. polls/views.py: from django.h ...

  9. jQuery知识点二 实现隔行变色

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  10. 没有素描色彩基础适合学习UI吗,如果可以,该怎么学?

      文章背景,来自[ UI设计交流群 - 92588284 ]的一次探讨,由于个人视野有限,个中观点有失狭隘,仅供参考,欢迎拍砖: 问题一:一个朋友想学UI设计,没有任何基础的,也没有美术功底,想问问 ...