首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL连接查询中的三个表

SQL连接查询中的三个表
EN

Stack Overflow用户
提问于 2017-11-16 18:49:01
回答 3查看 116关注 0票数 0

我正在尝试加入我的查询中的三个表。情况如下:

我有两张表(题词和费用),第三张表中有他们的第二把钥匙。

  • 铭文
  • 账单
  • 费用

我可以在账单上找到铭文和费用。我能把铭文与账单联系起来,但不能将费用与铭文联系起来。

当铭文被放置时,该铭文有一些费用,加上铭文本身的价格。BillID可以同时申报价格和费用。

桌子上的账单是中间的。我相信,如果我有一个BillID,我可以分配费用的铭文。但这是我的挑战。

代码语言:javascript
复制
select
*
from bills i
left join  Inscription ip
on ip.Idinscription = i.IDinscription
left join  fees f
on f.IDfee = i.Idfee

当我有IDfee时,IDinscription是空的,当我有IDinscription时,IDfee也是空的。账单和费用都有相同的IDbill。

所要求的结果

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-11-16 20:55:43

编辑尝试运行以下内容:

代码语言:javascript
复制
SELECT DISTINCT * FROM bills i
LEFT JOIN inscription ip
ON ip.idInscription = i.idInscription
LEFT JOIN fees f ON f.idFee = i.idFee 
WHERE i.idFee IS NOT NULL AND i.idInscription IS NOT NULL

此查询将向您提供与每个题字相关的费用。我相信你们数据库的结构很有条理。一张铭文有一张账单,每一张账单有许多费用。

票数 0
EN

Stack Overflow用户

发布于 2017-11-17 15:26:51

你可以这样做:

代码语言:javascript
复制
SELECT b.idbill, p.idinscription, f.idfee
FROM bills b
INNER JOIN
(SELECT idinscription
 FROM inscription
 WHERE idinscription IS NOT NULL) p ON b.idinscription = p.idinscription
INNER JOIN
(SELECT idfee
 FROM fee
 WHERE idfee IS NOT NULL) f ON b.idfee = f.idfee
票数 0
EN

Stack Overflow用户

发布于 2017-11-17 19:31:53

从账单中选择distinct *我左边的联接题词ip on ip.Idinscription = i.IDinscription左连接费f on f.IDfee = i.Idfee,其中i.idfee不为空,i.idinscription不为空,这会给您一个语法问题吗?- Joseph 20分钟前

谢谢赵先生。你的问题回答了我的问题。我将把我的sql结果移到SSRS。谢谢-2分钟前的“祝福”编辑

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47337062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档