请教sql三个表的join查询

wsl415405 2013-07-28 02:06:51
A表是维修单表,B表是维修材料表,当A表插入一张维修单的数据时,自动分配一个维修ID,B表则通过维修ID关联维修单和维修材料
另外有一个C表,是仓库物品资料表,可以根据B表中的维修材料编号在C表中查询到该物品的全部信息。
现在的问题在于写一个查询,要把ABC个表join在一起,让AB表没有而C表有的列都显示出来
简而言之就是:
A表 B表可以根据维修id关联
B表 C表可以根据物品编号关联
A表 C表无直接对应关系
请问怎样把ABC三个表用join关联起来?谢谢
...全文
243 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
guan_tu 2013-07-29
  • 打赏
  • 举报
回复

select 材料编号 from C where 材料编号 not exists
(select 材料编号 from(select 材料编号=B.材料编号 from B inner join A on B.ID=A.ID) temp)
Tosp2012 2013-07-28
  • 打赏
  • 举报
回复
引用 楼主 wsl415405 的回复:
A表是维修单表,B表是维修材料表,当A表插入一张维修单的数据时,自动分配一个维修ID,B表则通过维修ID关联维修单和维修材料 另外有一个C表,是仓库物品资料表,可以根据B表中的维修材料编号在C表中查询到该物品的全部信息。 现在的问题在于写一个查询,要把ABC个表join在一起,让AB表没有而C表有的列都显示出来 简而言之就是: A表 B表可以根据维修id关联 B表 C表可以根据物品编号关联 A表 C表无直接对应关系 请问怎样把ABC三个表用join关联起来?谢谢

SELECT C.* FROM C
WHERE NOT EXISTS
(SELECT 1 
 FROM
  (SELECT b.编号 
    FROM A 
   INNER JOIN B
   ON A.id=B.id
  )D
  WHERE C.编号=D.编号
)
Andy__Huang 2013-07-28
  • 打赏
  • 举报
回复
条作是什么?自已写where后面 这样Ab没有数据,C表的数据不可能出来
Andy__Huang 2013-07-28
  • 打赏
  • 举报
回复
Select a.*,b.*,c.* From a Left join b on a.id=b.id Left join c on b.编号=c.编号

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧