求使用mssql进行多表查询的语句

飞扬的雪花 2015-04-22 08:53:00
我现在要将10多张表进行查询,使用select * from t1,t2,t3,t4,t5 where t1.fno=t2.fno and t2.no=t3.no and t4.no=t5.no,这种方式不好弄,有没有更好的方式?求助高手!
...全文
341 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
S_Slan 2015-10-29
  • 打赏
  • 举报
回复
创建 视图,再查呢
飞扬的雪花 2015-10-28
  • 打赏
  • 举报
回复
引用 18 楼 Tiger_Zhao 的回复:
一点都没诚意!数据、字段名还要人工OCR?
亲,我只是举个例子,还在学习中,没有项目中用的表和字段。
Tiger_Zhao 2015-04-27
  • 打赏
  • 举报
回复

一点都没诚意!数据、字段名还要人工OCR?
飞扬的雪花 2015-04-24
  • 打赏
  • 举报
回复
引用 14 楼 Tiger_Zhao 的回复:
JOIN不合并数据。
SELECT *
FROM T1
FULL OUTER JOIN ( SELECT ID, SUM(数量)数量
FROM T2
GROUP BY ID
) T2S ON T1.ID = TS.ID
FULL OUTER JOIN T3 ON T1.ID = T3.ID


我想实现如下结果:
飞扬的雪花 2015-04-24
  • 打赏
  • 举报
回复
引用 15 楼 u013545744 的回复:
[quote=引用 14 楼 Tiger_Zhao 的回复:] JOIN不合并数据。
SELECT *
  FROM T1
  FULL OUTER JOIN (  SELECT ID, SUM(数量)数量
                       FROM T2
                   GROUP BY ID
                  ) T2S ON T1.ID = TS.ID
  FULL OUTER JOIN T3 ON T1.ID = T3.ID 
这个语句执行后数量没有合并。
Tiger_Zhao 2015-04-24
  • 打赏
  • 举报
回复
JOIN不合并数据。
SELECT *
FROM T1
FULL OUTER JOIN ( SELECT ID, SUM(数量)数量
FROM T2
GROUP BY ID
) T2S ON T1.ID = TS.ID
FULL OUTER JOIN T3 ON T1.ID = T3.ID
飞扬的雪花 2015-04-24
  • 打赏
  • 举报
回复
引用 14 楼 Tiger_Zhao 的回复:
JOIN不合并数据。
SELECT *
  FROM T1
  FULL OUTER JOIN (  SELECT ID, SUM(数量)数量
                       FROM T2
                   GROUP BY ID
                  ) T2S ON T1.ID = TS.ID
  FULL OUTER JOIN T3 ON T1.ID = T3.ID 
sum(isnull(t2.fqty,0)) 我用这个处理的
Tiger_Zhao 2015-04-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 u013545744 的回复:]我现在想实现若干张表完全连接,且某字段无值时显示空,怎么实现? [/Quote]
SELECT *
FROM T1
FULL OUTER JOIN T2 ON T1.ID = T2.ID
FULL OUTER JOIN T3 ON T1.ID = T3.ID
hery2002 2015-04-23
  • 打赏
  • 举报
回复
ISNULL
飞扬的雪花 2015-04-23
  • 打赏
  • 举报
回复
引用 12 楼 Tiger_Zhao 的回复:
[Quote=引用 10 楼 u013545744 的回复:]我现在想实现若干张表完全连接,且某字段无值时显示空,怎么实现? [/Quote]
SELECT *
  FROM T1
  FULL OUTER JOIN T2 ON T1.ID = T2.ID
  FULL OUTER JOIN T3 ON T1.ID = T3.ID 
T1对应T2中有两条记录,如何合并T2中的字段,比如合并数量?
飞扬的雪花 2015-04-22
  • 打赏
  • 举报
回复
引用 9 楼 u013545744 的回复:
[quote=引用 8 楼 hery2002 的回复:] 临时表的关联和实体表的关联是一样的,

SELECT T1.ID,T2.ID,T3.ID
FROM #T1 T1
INNER JOIN #T2 T2 ON T1.ID = T2.ID
INNER JOIN #T3 T3 ON T1.ID = T3.ID 
WHERE ....
谢谢![/quote] 我现在想实现若干张表完全连接,且某字段无值时显示空,怎么实现?
飞扬的雪花 2015-04-22
  • 打赏
  • 举报
回复
引用 8 楼 hery2002 的回复:
临时表的关联和实体表的关联是一样的,

SELECT T1.ID,T2.ID,T3.ID
FROM #T1 T1
INNER JOIN #T2 T2 ON T1.ID = T2.ID
INNER JOIN #T3 T3 ON T1.ID = T3.ID 
WHERE ....
谢谢!
hery2002 2015-04-22
  • 打赏
  • 举报
回复
临时表的关联和实体表的关联是一样的,

SELECT T1.ID,T2.ID,T3.ID
FROM #T1 T1
INNER JOIN #T2 T2 ON T1.ID = T2.ID
INNER JOIN #T3 T3 ON T1.ID = T3.ID 
WHERE ....
飞扬的雪花 2015-04-22
  • 打赏
  • 举报
回复
引用 6 楼 hery2002 的回复:
10张表关联,不推荐,建议拆分开来,形成临时表,两三个表关联以后在通过临时表关联, 当然,你全部是INNER JOIN 问题不大, 如果是LEFT JOIN又涉及到千万级的大表,那么会很痛苦的,对于多表关联,数量超过6个,SQL Server的查询优化器不一定能够找到很好的执行计划。 INNER JOIN方式显式写出,这样方便优化器处理。 虽然说性能上没有什么差异,
我是新手,临时表怎么关联,能否给一个简单的例子,非常感谢!
hery2002 2015-04-22
  • 打赏
  • 举报
回复
10张表关联,不推荐,建议拆分开来,形成临时表,两三个表关联以后在通过临时表关联, 当然,你全部是INNER JOIN 问题不大, 如果是LEFT JOIN又涉及到千万级的大表,那么会很痛苦的,对于多表关联,数量超过6个,SQL Server的查询优化器不一定能够找到很好的执行计划。 INNER JOIN方式显式写出,这样方便优化器处理。 虽然说性能上没有什么差异,
还在加载中灬 2015-04-22
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/310201406
还在加载中灬 2015-04-22
  • 打赏
  • 举报
回复
标准不一样而已,各数据库引擎对这个的推荐也不一样 个人喜欢JOIN的写法 这边有个别人讨论的贴子
飞扬的雪花 2015-04-22
  • 打赏
  • 举报
回复
引用 2 楼 u013545744 的回复:
[quote=引用 1 楼 ky_min 的回复:] 表连接也就这样的写法,我觉得写成INNER JOIN的方式,貌似也不是你想要的答案
我现在就搞不懂inner join与我这种写法的区别,求指教![/quote] 哪一种更专业?
飞扬的雪花 2015-04-22
  • 打赏
  • 举报
回复
引用 1 楼 ky_min 的回复:
表连接也就这样的写法,我觉得写成INNER JOIN的方式,貌似也不是你想要的答案
我现在就搞不懂inner join与我这种写法的区别,求指教!
还在加载中灬 2015-04-22
  • 打赏
  • 举报
回复
表连接也就这样的写法,我觉得写成INNER JOIN的方式,貌似也不是你想要的答案

34,590

社区成员

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

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