用union把查询结果合并

用union把查询结果合并

使用场景

如图有三个表,根据这三个表查出如图四的数据结构。可以理解为查询一家主人的食物消耗记录,消耗者分为主人和客人,表food存储了消耗的食物名称,消耗者id和消耗数量。表user和admin分别是客人表和主人表。现在就要根据这三个表查到如图四的消耗记录,sql该怎么写呢?
在这里插入图片描述
![图二](https://img-blog.csdnimg.cn/20181212140933466.png
![图三](https://img-blog.csdnimg.cn/20181212141015135.png
下图效果是我们最终要的结果
![图四](https://img-blog.csdnimg.cn/20181212141042734.png

sql语句

SELECT food.id,food.food,food.num,user.user_name as u_name from food  LEFT JOIN user on user.id = food.uid where food.uid in (SELECT id from `user`)
UNION 
SELECT food.id,food.food,food.num,admin.admin_name as u_name from food  LEFT JOIN admin on admin.id = food.aid where food.aid in (SELECT id from `admin`)

执行结果

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿联盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值