Mysql---多表查询
《需求》
比如说:我们要显示一系列信息,但是这些信息并不是在同一个表上的,可能在多个表上
这个时候就要展示多张表的内容
如:
如果我直接这样会显示什么呢?
很明显,相当于作了个乘积,这个现象被称为笛卡尔集
然而:我们只要显示两张表中信息公共点的信息即可(这里是指id相同)
《自链接(单表多用)》
当我有一个这样的表:我想显示这个员工与相应上司的名称该如何显示?(没有上级的员工不显示)
明显:这里的员工与上级的信息都是在相同一个表
这里我们要将这个表分成两个表用:
worker与boss分别是emp表的别名
《子查询》
《单行子查询》
比如:
在上面的这一张表中,如何查询显示id与tom相同的人的姓名?
《多行子查询》
比如:还是是上面的表,如何显示id与 tom 或 yuo相同的人的姓名?
这里id不在是一个了,而是有多个:
《多列子查询》
《子查询当做表》
查询商品类别中价格最大的商品名称(要求显示出goods id , cat_id goods_name,shop_price):
在我这样写后可以得到如下:
然后可以将其当做另一个表,与原表结合
《all与any操作符》
《表的复制与去重》
《利用复制与distinct来实现一张表的去重》
去重my_tab02
《合并查询》
即:如果有一个信息均符合这两条select语句,则其会出现两次