前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《深入浅出SQL》问答录(八)

《深入浅出SQL》问答录(八)

作者头像
看、未来
发布2020-08-25 17:02:59
3050
发布2020-08-25 17:02:59
举报
在这里插入图片描述
在这里插入图片描述

花絮

子查询解析

在单一查询不够用的时候,请使用子查询。

子查询只不过是查询里的查询。

代码语言:javascript
复制
SELECT some_column,anther_column
FROM table
WHERE column = (SELECT column FROM table);

因为查询里使用了 = 运算符,所以子查询里只会返回单一值,特定行和列的交叉点,这一个值将是WHERE子句中比对数据列的条件。

代码语言:javascript
复制
SELECT zip_code 
FROM zip_code WHERE city = 
	(SELECT zip_code 
	From zip_code
	WHERE city = 'Memphis' AND state  ='TN' 
	)
;
在这里插入图片描述
在这里插入图片描述
非关联子查询

如果子查询可以独立运行且不会引用外层查询的任何结果,即称为外层查询。 上面都是

有时候最好创建测试数据库来尝试各种查询方式,比较查询运行时间。 联接比子查询更有效率。

关联子查询

关联子查询是内层查询的解析需要依赖于外层查询的结果。

关联子查询的常见用法是找出所有外层查询结果里不存在于关联表里的数据。

代码语言:javascript
复制
SELECT mc.first_name firstname,mc.last_name lastname,mc.email email
FROM my_contacts mc
WHERE NOT EXISTS(
SELECT * FROM job_cerrent jc
WHERE mc.contact_id = jc.contact_id
) ;

问答录

Q:内层查询究竟可以返回什么?外层查询呢?

A:大多数情况下,内层查询只能返回单一值,也就是一列里的一行。而后,外层查询才能利用这个值与列中其他值进行比较。 一般而言,子查询必须返回一个值,使用IN是例外情况。


Q:所以说,子查询可以放在子查询里吗?

A:of couse.


Q:据说使用子查询能解决的事情,用联接也可以?是这样吗?

A:不然呢?


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 花絮
    • 子查询解析
      • 非关联子查询
      • 关联子查询
  • 问答录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档