mysql怎么将两个表查询出来的结果再去关联下一张表?
就比如我这两张表已经查询到了结果,我怎么再去拿这个结果去关联下一张表,急!!!求大神指点!!谢谢!!...
就比如我这两张表已经查询到了结果,我怎么再去拿这个结果去关联下一张表,急!!!求大神指点!!谢谢!!
展开
3个回答
展开全部
可以用两表的查询结果集做为一个虚拟表(为其取一个表别名),然后再用该虚拟表与另一张表实施连接查询即可。请参考以下例子:
假设有三张表
1)商品表(商品ID,商品名称)
2)入库表(商品ID,入库数量,入库时间)
3)出库表(商品ID,出库数量,出库时间)
要求列出所有商品名称、商品ID及其当前库存余额
SQL查询语句如下:
select 商品表.商品名称,商品表.商品ID,b.库存余额
from 商品表 left join
(select a.商品ID,sum(a.数量)as 库存余额 from
(select 商品ID,入库数量 as 数量 from 入库表 union all
select 商品ID,-1*出库数量 from 出库表) a group by a.商品ID) b
on 商品表.商品ID=b.商品ID;
-- 说明上述语句中的“a”和“b”分别是两个中间过渡查询结果集取的表别名,也就所谓的虚拟表。
假设有三张表
1)商品表(商品ID,商品名称)
2)入库表(商品ID,入库数量,入库时间)
3)出库表(商品ID,出库数量,出库时间)
要求列出所有商品名称、商品ID及其当前库存余额
SQL查询语句如下:
select 商品表.商品名称,商品表.商品ID,b.库存余额
from 商品表 left join
(select a.商品ID,sum(a.数量)as 库存余额 from
(select 商品ID,入库数量 as 数量 from 入库表 union all
select 商品ID,-1*出库数量 from 出库表) a group by a.商品ID) b
on 商品表.商品ID=b.商品ID;
-- 说明上述语句中的“a”和“b”分别是两个中间过渡查询结果集取的表别名,也就所谓的虚拟表。
展开全部
只有表与表直接有字段关联,可以通过关联查询或子查询联合查询多张表。
表如:
select a.*,b.字段名,c.字段名 from A as a left join B as b on a.字段=b.字段 left join C as c on b.字段=c.字段
表如:
select a.*,b.字段名,c.字段名 from A as a left join B as b on a.字段=b.字段 left join C as c on b.字段=c.字段
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以这么看,将查询的结果当成一个表,再使用查询去匹配另外一张表就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询