首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

sql INNER JOIN表变量ON VS. INNER JOIN(选择)ON

首先,我们需要了解SQL中的INNER JOIN操作。INNER JOIN是一种用于连接两个表的方法,它返回两个表中满足连接条件的行。INNER JOIN可以使用ON子句来指定连接条件。

在这个问题中,我们需要比较以下两种INNER JOIN方法:

  1. INNER JOIN表变量ON
  2. INNER JOIN(选择)ON

首先,我们来看第一种方法:INNER JOIN表变量ON。这种方法通常用于连接两个表,其中一个表是一个变量表。在这种情况下,我们需要使用ON子句来指定连接条件。例如:

代码语言:txt
复制
SELECT *
FROM table1
INNER JOIN @tableVar ON table1.column1 = @tableVar.column1

在这个例子中,我们使用INNER JOIN操作连接了一个变量表@tableVar,并使用ON子句指定了连接条件。

接下来,我们看第二种方法:INNER JOIN(选择)ON。这种方法通常用于连接两个子查询的结果。在这种情况下,我们需要使用ON子句来指定连接条件。例如:

代码语言:txt
复制
SELECT *
FROM (SELECT column1, column2 FROM table1) AS subquery1
INNER JOIN (SELECT column1, column2 FROM table2) AS subquery2
ON subquery1.column1 = subquery2.column1

在这个例子中,我们使用INNER JOIN操作连接了两个子查询的结果,并使用ON子句指定了连接条件。

总结:

  • INNER JOIN表变量ON:用于连接一个表和一个变量表,使用ON子句指定连接条件。
  • INNER JOIN(选择)ON:用于连接两个子查询的结果,使用ON子句指定连接条件。

在实际应用中,我们需要根据具体的需求选择合适的INNER JOIN方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • sql之left join、right joininner join的区别

    left join(左联接) 返回包括左中的所有记录和右中联结字段相等的记录 right join(右联接) 返回包括右中的所有记录和左中联结字段相等的记录 inner join(等值连接) 只返回两个中联结字段相等的行...left join是以A的记录为基础的,A可以看成左,B可以看成右,left join是以左为准的....,A不足的地方用NULL填充. -------------------------------------------- 3.inner join 很明显,这里只显示出了 A.aID = B.bID的记录....这说明inner join并不以谁为基础,它只显示符合条件的记录. -------------------------------------------- 注: LEFT JOIN操作用于在任何的...如果在INNER JOIN操作中要联接包含Memo 数据类型或OLE Object 数据类型数据的字段,将会发生错误.

    1.2K20

    sql之left join、right joininner join的区别

    left join(左联接) 返回包括左中的所有记录和右中联结字段相等的记录  right join(右联接) 返回包括右中的所有记录和左中联结字段相等的记录 inner join(等值连接)...sql语句如下:  select * from A left join B  on A.aID = B.bID 结果如下: aID     aNum     bID     bName 1     a20050111...是以A的记录为基础的,A可以看成左,B可以看成右,left join是以左为准的..... -------------------------------------------- 2.right join sql语句如下:  select * from A right join B  on...的结果刚好相反,这次是以右(B)为基础的,A不足的地方用NULL填充. -------------------------------------------- 3.inner join sql语句如下

    1.6K30

    sql连接查询(inner join、full join、left join、 right join

    sql连接查询(inner join、full join、left join、 right join) 一、内连接(inner join) 首先我这有两张 1、顾客信息customer ?..., o.create_time, o.money from customer c inner join orders o on c.id = o.customer_id 结果: ?...sql语句: select c.customer_name, o.create_time, o.money from customer c left join orders o on c.id =...从结果可以很清楚的明白左连接的含义: 将左边的所有记录拿出来,不管右边有没有对应的记录 三、右连接(right join) 需求:查询哪个顾客(customer_name)在哪一天(create_time...、 从结果可以很清楚的明白右连接的含义: 将右边的所有记录拿出来,不管右边有没有对应的记录 四、全连接(full join) 这里要注意的是mysql本身并不支持全连接查询,但是我们可以使用UNION

    4.3K40

    sql之left join、right joininner join的区别

    left join(左联接) 返回包括左中的所有记录和右中联结字段相等的记录 right join(右联接) 返回包括右中的所有记录和左中联结字段相等的记录 inner join(等值连接)...sql语句如下: select * from A left join B on A.aID = B.bID 结果如下: aID     aNum     bID     bName 1     a20050111.... -------------------------------------------- 2.right join sql语句如下: select * from A right join B on...的结果刚好相反,这次是以右(B)为基础的,A不足的地方用NULL填充. -------------------------------------------- 3.inner join sql语句如下...如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误.

    1.5K80

    sql之left join、right joininner join的区别

    left join(左联接) 返回包括左中的所有记录和右中联结字段相等的记录 right join(右联接) 返回包括右中的所有记录和左中联结字段相等的记录 inner join(等值连接...sql语句如下: select * from A left join B on A.aID = B.bID 结果如下: aID     aNum     bID     bName 1     a20050111.... -------------------------------------------- 2.right join sql语句如下: select * from A right join B on...的结果刚好相反,这次是以右(B)为基础的,A不足的地方用NULL填充. -------------------------------------------- 3.inner join sql语句如下...如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误.

    1.9K30

    sql语法:inner join on, left join on, right join on具体用法

    (右联接) 返回包含右中的全部记录和左中联结字段相等的记录 INNER JOIN 语法: INNER JOIN 连接两个数据的使用方法: SELECT * FROM 1 INNER JOIN ...2 ON 1.字段号=2.字段号 INNER JOIN 连接三个数据的使用方法: SELECT * FROM (1 INNER JOIN 2 ON 1.字段号=2.字段号) INNER JOIN...能够将 INNER JOIN 用于 Departments 及 Employees ,以选择出每一个部门的全部雇员。...而要选择全部部分(即使某些部门中并没有被分配雇员)或者全部雇员(即使某些雇员没有分配到不论什么部门),则能够通过 LEFT JOIN 或者 RIGHT JOIN 操作来创建外部联接。...的结果刚好相反,这次是以右(B)为基础的,A不足的地方用NULL填充. 3.inner join sql语句例如以下: select * from A innerjoin B on A.aID

    1.4K10

    SQL基础【十五、joinInner join、Left join、Right join、Full join

    Join 数据库中的可以通过键将彼此联系起来,主键是一个列,在这个列中的每一行的值都是唯一的,在中,每个主键的值都是唯一的,这样就可以在不重复每个中的所有数据的情况下,把间的数据交叉捆绑在一起。...='room of boy' Inner join Inner joinjoin 用法一致 Select u.user_name,u.user_age,r.room_name from user...as u inner join room as r on u.room_id = r.room_id and r.room_name='room of boy' Left join 注意:左连接以左边的为主体...user Full join room 2:Room在左边 Select * From room full join user 注意:SQL错误码1054表示没有找到对应的字段名;错误码1064表示用户输入的...SQL语句有语法错误 希望能对大家有所帮助。

    1.6K20

    SQL中关于JoinInner Join、Left Join、Right Join、Full Join、On、 Where区别

    前言:   今天主要的内容是要讲解SQL中关于JoinInner Join、Left Join、Right Join、Full Join、On、 Where区别和用法,不用我说其实前面的这些基本SQL...数据库(MS Sql Server)结构和对应数据: Students 学生: ? Class 班级: ?...Inner Join(内连接查询): 概念:与Join相同,两或多表之间联立查询数据,因此我们在使用多表join查询的时候既可以使用where关联,也可以是inner join关联查询 select...* from Students s inner join Class c on s.ClassId=c.ClassId ?...ON的使用无论是左右内全都使用到了On来进行关联: 对于Inner Join 的作用就是起到了与where相同的作用条件筛选: select * from Students s inner JOIN

    6.3K21

    left join 、right joininner join之间的区别

    inner join(等值连接) 只返回两个中联结字段相等的行(在中存在至少一个匹配时,INNER JOIN 关键字返回行) A记录如下: aID     aNum 1     a20050111...2     2006032402 3     2006032403 4     2006032404 8     2006032408 left join sql语句如下: select * from...是以A的记录为基础的,A可以看成左,B可以看成右,left join是以左为准的....B表记录不足的地方均为NULL. right join sql语句如下: select * from A right join B on A.aID = B.bID 结果如下: aID     aNum...的结果刚好相反,这次是以右(B)为基础的,A不足的地方用NULL填充. inner join sql语句如下: select * from A inner join B on A.aID = B.bID

    1.7K30

    inner join、outer join、right join、left join 之间的区别

    一、sql的left join 、right joininner join之间的区别   left join(左联接) 返回包括左中的所有记录和右中联结字段相等的记录    right join...(右联接) 返回包括右中的所有记录和左中联结字段相等的记录   inner join(等值连接) 只返回两个中联结字段相等的行        outer join(外连接) 可分为左外连接left...sql语句如下:  select * from A left join B  on A.aID = B.bID 结果如下: aID     aNum     bID     bName 1.... -------------------------------------------- 2.right join sql语句如下:  select * from A right join...的结果刚好相反,这次是以右(B)为基础的,A不足的地方用NULL填充. -------------------------------------------- 3.inner join sql

    4.6K30

    mysql left join、right joininner join用法分析

    四种联接 left join(左联接) 返回包括左中的所有记录和右中联结字段相等的记录 right join(右联接) 返回包括右中的所有记录和左中联结字段相等的记录 inner join...(等值联接) 只返回两个中联结字段相等的行 cross join(交叉联接) 得到的结果是两个的乘积,即笛卡尔积 创建 CREATE TABLE `product` (`id` int...join(等值联接) mysql> select * from product a inner join product_details b on a.id=b.id; +...(交叉联接) cross join:交叉联接,得到的结果是两个的乘积,即笛卡尔积。...A Left join B On a.id=b.idAnd b.id=2;从B中检索符合的所有数据行,如果没有匹配的全部为null A Left join B On a.id=b.idWhere

    3K70

    PostgreSQLGreenPlum Merge Inner Join解密

    根据外表扫描的记录进行判断: 1)外表为空,即扫描出来的记录为空,或者第一个join条件的左值为NULL并且null排序后放在最后且为inner join,则结束join,返回NULL 2)左值为NULL...根据扫描的记录进行判断: 1)内为空,即扫描出来的记录为空,或者第一个join条件的左值为NULL并且null排序后放在最后且为inner join,则结束join,返回NULL 2)内值为NULL...根据扫描的记录进行判断: 1)外表扫描完,即扫描出来的记录为空,或者第一个join条件的左值为NULL并且null排序后放在最后且为inner join,则结束join,返回NULL 2)左值为NULL...该状态扫描内下一条记录,根据扫描的记录进行判断: 1)内扫描完,即扫描出来的记录为空,或者第一个join条件的左值为NULL并且null排序后放在最后且为inner join,则结束join,返回...并根据扫描的记录进行判断: 1)内扫描完,即扫描出来的记录为空,或者第一个join条件的左值为NULL并且null排序后放在最后且为inner join,则进入EXEC_MJ_NEXTOUTER状态

    47860

    left joininner join、right join、full outer join的区别

    文章目录 sql的left join 、right joininner join之间的区别 FULL OUTER JOIN SQL FULL OUTER JOIN 关键字 SQL FULL OUTER...JOIN 语法 演示数据库 SQL FULL OUTER JOIN 实例 sql的left join 、right joininner join之间的区别 left join(左联接) 返回包括左中的所有记录和右中联结字段相等的记录...right join(右联接) 返回包括右中的所有记录和左中联结字段相等的记录 inner join(等值连接) 只返回两个中联结字段相等的行 t_user t_class..., 这个select语句是完全独立的, 不和他以外的SQL相通 update 1 a1 inner join (select 字段1,字段2 from 1 where 条件) a2 on...条件 set a1.字段1 = a2.字段2 先造出来一个虚拟,然后通过更新虚拟的方式去实现具体的更新; FULL OUTER JOIN SQL FULL OUTER JOIN

    1.7K20

    SQLinner join、left join、right join、full join 到底怎么选?详解来了

    要么是业务不熟悉,对数据的理解不够深入;要么就是对各种联查询的细微的差别了解的不够深入; 首先来看一下数据库表链接的几种方式 inner join 内连接 left join 左连接 right join...内连接 inner join 内连接查询两张直接的交集部分,只保留两张都有的字段 # INNER JOIN SELECT * FROM user_info AS ur INNER JOIN...右连接 right join 和左连接正好相反,返回右边的所有行,即使左边没有行与之匹配,未匹配上的显示null #RIGHT JOIN SELECT * FROM user_info AS...ci.id WHERE ci.id IS NULL; 右独有 查询右边独有的数据 # 右独有 SELECT * FROM user_info AS ur RIGHT JOIN...t1 NATURAL LEFT JOIN t2; 自然右连接 包含右边的所有字段 SELECT * FROM t1 NATURAL RIGHT JOIN t2; 怎么样?

    95620
    领券