社区
数据库(包含打印,安装,报表)
帖子详情
初级问题:INNER JOIN vs WHERE
of123
2004-09-03 11:32:05
下列语句有什么不同?
SELECT * FROM table1, table2 WHERE table1.id = table2.id
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id
...全文
147
12
打赏
收藏
初级问题:INNER JOIN vs WHERE
下列语句有什么不同? SELECT * FROM table1, table2 WHERE table1.id = table2.id SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wumylove1234
2004-09-03
打赏
举报
回复
2个语句的效果是一样的,但是显现的过程不同,第一个是先把2个表作笛卡儿挤处理,然后按照where的条件抽出满足条件的记录,而第二个没有进行笛卡尔基处理
这位朋友好像说反了.
使用Join的语句是作笛卡尔积操作,但不是完全的关联,是根据Where条件关条的.
根据我的理解.使用where A.ID=B.ID
的方法,在A表中顺序查找,然后取出A.ID,到B表中按照索引去找B.ID,找到则提取记录到内存.
而Inner Join的,我的理解是,呵,如果单纯的就是像你上边的一个条件的话,我认为道理是一样的.但是如果表比较多的话,我认为Join能提高性能!
starsoulxp
2004-09-03
打赏
举报
回复
顶
renjunjun
2004-09-03
打赏
举报
回复
一看你两星就知道问题不简单了
在实际中,应该是第二个效率高一些,因为它使用两个关键字来连接两表,而不象第一个采用Where进行条件查询
而且,第二条可以采用左联或右联来轻松实现更复杂的查询要求,语法上显得更直观,不需要设计很复杂的Where条件.
bladeinside
2004-09-03
打赏
举报
回复
看看
RUKYO
2004-09-03
打赏
举报
回复
不知道哪个效率高些?是第二吗?
RUKYO
2004-09-03
打赏
举报
回复
效果是一样的。
第一条是先取所有值再根据各自id是否相同来排他。
第二条是根据各自id产生的交集来联结两表
apple1980
2004-09-03
打赏
举报
回复
Inner Join
Inner Join 逻辑运算符返回满足第一个(顶端)输入与第二个(底端)输入联接的每一行。
内联接是用比较运算符比较要联接列的值的联接。
是不是,两SQL语句,内部查找的方法不一样呀?
第一个,是分别读取两个表进来
haohaohappy
2004-09-03
打赏
举报
回复
SELECT * FROM table1, table2 WHERE table1.id = table2.id
返回table1,table2中ID相同的记录集
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id
表示是内部联合,这种联合没有where语句。在这里你使用的语法中的JOIN ON 不是ANSI 标准中所指定的,而是我们所使用的解释器的附加语法.
表示把table1,table2中ID相同的记录进行了组合.
希望对你有帮助。
lele2002
2004-09-03
打赏
举报
回复
2个语句的效果是一样的,但是显现的过程不同,第一个是先把2个表作笛卡儿挤处理,然后按照where的条件抽出满足条件的记录,而第二个没有进行笛卡尔基处理
LGYAN
2004-09-03
打赏
举报
回复
第一句是找出table1和table2的ID相同的记录。
LGYAN
2004-09-03
打赏
举报
回复
那我也来抢一抢
of123
2004-09-03
打赏
举报
回复
呵呵,如果星期一还没有人回复,100分就是你的了。
MYSQL
初级
笔试题
我们可以使用`
INNER
JOIN
`或`
JOIN
`关键字来完成这个任务,如下所示: ```sql SELECT Class.专业班级, Class.坐号 FROM Class
JOIN
Score ON Class.姓名 = Score.姓名 WHERE Class.姓名 = '张三'; ``` 这个...
SQL Server
初级
入门SQL语句
- 选择合适的连接类型(如 `
INNER
JOIN
`, `LEFT
JOIN
` 等)。 - 明确指定连接条件。 ##### 子查询 ```sql SELECT * FROM card WHERE balance > (SELECT AVG(balance) FROM card); ``` - **命令解释**:子查询是在...
初级
程序员面试的oracle题目
- `
INNER
JOIN
`确保只有当两个表中的`NAME`相匹配时才执行更新操作。 #### 五、获取特定行的数据 **题目描述**: 请写出SQL语句,用于列出表`T`中第3到第5行的数据。 **解答**: ```sql SELECT * FROM ( SELECT *,...
sql优化
初级
学习资料
理解
INNER
JOIN
、LEFT
JOIN
、RIGHT
JOIN
和FULL
JOIN
的差异,并根据需求选择最高效的
JOIN
类型。 4. **使用EXPLAIN分析查询**:EXPLAIN命令可以帮助分析SQL查询的执行计划,揭示数据库如何处理查询,从而找出潜在的...
经典SQL查询50题
2. **连接查询**:
INNER
JOIN
、LEFT
JOIN
(LEFT OUTER
JOIN
)、RIGHT
JOIN
(RIGHT OUTER
JOIN
)和FULL
JOIN
(FULL OUTER
JOIN
)用于合并多个表的数据,理解
JOIN
的条件和不同类型的
JOIN
的区别至关重要。 3. **聚合...
数据库(包含打印,安装,报表)
1,217
社区成员
55,952
社区内容
发帖
与我相关
我的任务
数据库(包含打印,安装,报表)
VB 数据库(包含打印,安装,报表)
复制链接
扫一扫
分享
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章