问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据库中的“INNER JOIN”是什么意思?

发布网友 发布时间:2022-04-27 06:22

我来回答

4个回答

懂视网 时间:2022-05-02 02:41

INNER JOIN 操作符

INNER JOIN keyword在表中存在至少一个匹配时返回行。

SQL INNER JOIN 语法

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

或:

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

凝视:INNER JOIN 与 JOIN 是同样的 (交集)。

Demo

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

Mysql

也能够用上面的写法,等同以下

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers , Orders
WHERE Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName; 

该文为部分摘要。并又一次组织,

热心网友 时间:2022-05-01 23:49

在数据库中,INNER JOIN 关键字在表中存在至少一个匹配时返回行。

具体语法如下:

-from 树懒学堂

注释:INNER JOIN 与 JOIN 是相同的。

热心网友 时间:2022-05-02 01:07

热心网友 时间:2022-05-02 02:42

inner join on, left join on, right join on讲解(转载)

1.理论

只要两个表的公共字段有匹配值,就将这两个表中的记录组合起来。

个人理解:以一个共同的字段求两个表中符合要求的交集,并将每个表符合要求的记录以共同的字段为牵引合并起来。

语法

FROM table1 INNER JOIN table2 ON table1 . field1 compopr table2 . field2

INNER JOIN 操作包含以下部分:
部分说明
table1, table2要组合其中的记录的表的名称。
field1,field2要联接的字段的名称。如果它们不是数字,则这些字段的数据类型必须相同,并且包含同类数据,但是,它们不必具有相同的名称。
compopr任何关系比较运算符:“=”、“<”、“>”、“<=”、“>=”或者“<>”。

说明

可以在任何 FROM 子句中使用 INNER JOIN 操作。这是最常用的联接类型。只要两个表的公共字段上存在相匹配的值,Inner 联接就会组合这些表中的记录。

可以将 INNER JOIN 用于 Departments 及 Employees 表,以选择出每个部门的所有雇员。而要选择所有部分(即使某些部门中并没有被分配雇员)或者所有雇员(即使某些雇员没有分配到任何部门),则可以通过 LEFT JOIN 或者 RIGHT JOIN 操作来创建外部联接。

如果试图联接包含备注或 OLE 对象数据的字段,将发生错误。

可以联接任何两个相似类型的数字字段。例如,可以联接自动编号和长整型字段,因为它们均是相似类型。然而,不能联接单精度型和双精度型类型字段。

下例展示了如何通过 CategoryID 字段联接 Categories 和 Procts 表:

SELECT CategoryName, ProctName

FROM Categories INNER JOIN Procts

ON Categories.CategoryID = Procts.CategoryID;

在前面的示例中,CategoryID 是被联接字段,但是它不包含在查询输出中,因为它不包含在 SELECT 语句中。若要包含被联接字段,请在 SELECT 语句中包含该字段名,在本例中是指 Categories.CategoryID。

也可以在 JOIN 语句中链接多个 ON 子句,请使用如下语法:

SELECT fields
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field1 AND
ON table1.field2 compopr table2.field2) OR
ON table1.field3 compopr table2.field3)];

也可以通过如下语法嵌套 JOIN 语句:

SELECT fields
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON table3.field3 compopr tablex.fieldx)]
ON table2.field2 compopr table3.field3)
ON table1.field1 compopr table2.field2;

LEFT JOIN 或 RIGHT JOIN 可以嵌套在 INNER JOIN 之中,但是 INNER JOIN 不能嵌套于 LEFT JOIN 或 RIGHT JOIN 之中。

2.操作实例

表A记录如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115

表B记录如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408

实验如下:
1.left join

sql语句如下:
select * from A
left join B
on A.aID = B.bID

结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
(所影响的行数为 5 行)

结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.

2.right join
sql语句如下:
select * from A
right join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
(所影响的行数为 5 行)
结果说明:
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

3.inner join
sql语句如下:
select * from A
innerjoin B
on A.aID = B.bID

结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404

结果说明:
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
YY聊天中哪些语音的会不会作为文件存下来 2023谷雨节气的含义 谷雨三候是什么 我老公欠债,外遇,我想离婚,怎么办 ...我提供了我的姓名,出生年月日,还有工作地点,会出什么事吗... 刚刚接到一个诈骗电话,问我要了我的姓名和出生年月日,会不会利用... 不小心接到骗子的电话,还告诉了我的姓名和出生年月日,要不要紧啊... 知道了姓名和出生年月日,能拿来作案吗? WOW安装要CD 是什么问题? 急急急、、、魔兽世界用盘安装时老要CD片 时怎么回事 取消以后就安装不... 每次下载魔兽世界安装中途都会断掉,要求插入什么CD,然后出现这么一段文... My SQL(join)意思及详细用法 mysql怎么用left join right join inner join 求MySQL 中JOIN 的详细用法 什么人不能吃芒果 这五类人最好不要吃芒果 体内有湿气吃了芒果会怎么样 不是只有女生失恋才会痛彻心扉,男生失恋以后怎样才能早点走出失恋阴影... 哪些人易吃芒果,哪些人不能吃 湿气重影响身体健康,为什么湿气重的人不适合吃柿子和芒果? 有人说芒果湿气重,不能吃,是真的吗 湿气重能吃芒果吗 湿寒体质能吃芒果吗 湿气重 芒果可以吃吗 湿气重可以吃芒果吗 身体湿气重能吃芒果吗 湿气重的人不能吃这几种水果,特别第三种 哪款面膜最好用 好的面膜现在是哪个? 贴片式面膜,水洗式面膜和睡眠面膜哪个效果好 国家电网济南或者泰安培训是什么体验? 梦见白鸽 有会解梦的么 梦见走着,一只白鸽子扑入我怀,意思是 mysql中的inner join MySql INNER JOIN三表联查性能如何提升 sql join 的问题 MYsql 中INNER JOIN 问题 mysql中的inner join问题 sql之left join,right join,inner join和逗号的区别 sql INNER JOIN 语句的作用是什么? mysql update和inner join要怎么写才对 急 救命 mysql中,inner join和where的结合问题 家人迷上炒期货怎么办 炒期货的最好方法是怎么炒呢? 家人想做期货螺纹钢,怎么开户,在哪开户有区别吗?新手请详解,谢谢 怎样炒期货?请高手讲详细点。谢谢! 【满分泣血急求】如何劝我妈不再炒期货、炒股票!!! 我想炒期货,怎么操作 炒期货的具体流程是怎么样的? 贷款记录建行在征信上什么时候能消除? excel清单怎么导入广联达 如何把XML格式的工程量清单,招标控制价导入广联达4.0 广联达6.0怎么导入excel清单