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

 

posted @ 2022-08-26 20:57  次林梦叶  阅读(51)  评论(0)    收藏  举报