- 0
- 0
- 约1.52千字
- 约 5页
- 2026-03-11 发布于北京
- 举报
子查询和连接
一.由比较运算符的子查询:
,,=,!=(),=,=
✓查询的商品
当子查询返回多个值时,需要在比较运算符后加上关键字:ANY、SOME、ALL
当用到这些关键字后,子查询返回的值为:
ANYSOMEALL
、=最小值最小值最大值
、=最大值最大值最小值
=任意值任意值
、!=任意值
✓取出商品种类为3的商品的价格
假设其返回值为3个:500、700、900
若使用如下子查询语句,则子查询返回的结果为500,即查询大于商品种类为3
中的任意一个商品的价格的商品。
二.由[NOT]IN的子查询
=ANY运算符与IN等效
!=ANY或运算符与NOTIN等效
✓取出每个种类下的产品(goods_id唯一)
三.EXISTS型子查询(把外层查询结果拿到内层,看内层的查询是否成立)
✓查询哪些种类下有商品,商品种类表category,商品表goods
内连接:显示左表及右表符合连接条件的记录
查询结果是左右连接的交集,
语法:SELECTn1,n2,n3FROMtb1INNERJOINtb2ONtb1.n1=tb2.n2;
左连接:显示左表的全部记录及右表符合连接条件的记录
以左表为准,去右表找数据,如果没有匹配的数据,则以NULL补空位。
语法:SELECTn1,n2,n3FROMtb1LEFTJOINtb2ONtb1.n1=tb2.n2
###这里ON后面的表达式,不一定为=,也可以,等算术、逻辑运算符,连接完
成后,可以当成一张新表来看待,运用where等查询###
✓取出价格最高的五个商品,并显示商品的分类名称
右连接:显示右表的全部记录及左表符合连接条件的记录
aLEFTJOINb等价于bRIGHTJOINa
语法:SELECTn1,n2,n3FROMtb1RIGHTJOINtb2ONtb1.n1=tb2.n2
我们就教学中分类表设计中的例子进行详解,帮助大家更好的理解自身连接。
下图为无限级分类表tbd_goods_types中的全部记录:
✓查看所有的子类以及它父类(即上一级分类名字)
type_name
查找结果为:
✓查看所有父类以及父类下的子类(即下一级分类的名字)
type_name
查找结果为:
原创力文档

文档评论(0)