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语句,则其会出现两次


浙公网安备 33010602011771号