首页 新闻 会员 周边 捐助

数据库多表关联查询

1
[待解决问题]

如果在查询数据时关联了10几张表的话,有什么好的方法解决。

li_独影的主页 li_独影 | 菜鸟二级 | 园豆:202
提问于:2016-06-14 19:12
< >
分享
所有回答(4)
2

只能关联啊,可以写成view,下次查询的时候直接查view,不用每次都去关联这么多表!

嗜血苏菲 | 园豆:92 (初学一级) | 2016-06-14 23:18
2

只能多表联合查询,然后创建视图,这样为其他提供便利,减少重复sql语句

CodeHsu | 园豆:5668 (大侠五级) | 2016-06-15 09:19
2

如下:

CREATE VIEW V_FinanceINo(ID,InventoryNo,InventoryTitle,InventoryType,TotalMoney,IsState,InventoryMark)
AS SELECT ID,InventoryNo,InventoryTitle,InventoryType,TotalMoney,IsState,InventoryMark FROM (
    SELECT ID,inv.InventoryNo,inv.InventoryTitle,inv.InventoryType,
    (SELECT SUM(Number*Price) FROM dbo.InventoryDetail WHERE InventoryID=inv.ID GROUP BY InventoryID)TotalMoney ,
    IsState,InventoryMark FROM dbo.Inventory inv WHERE InventoryNo NOT IN (SELECT OrderNo FROM dbo.FinanceIDetails)
    UNION ALL    
    SELECT ID,PurchaseNo,PurchaseTitle,
    '采购进货' InventoryType,
    (SELECT SUM(Number* Price) FROM dbo.PurchaseDetails WHERE PurchaserID=dbo.Purchase.ID GROUP BY PurchaserID)TotalMoney,
    IsState,PurchaseMarker FROM dbo.Purchase WHERE PurchaseNo NOT IN (SELECT OrderNo FROM dbo.FinanceIDetails)
  ) T

如此低调的男人 | 园豆:842 (小虾三级) | 2016-06-15 16:39
0

不清楚你要进行哪方面的优化,主要有两方面的优化:1业务 2SQL本身

业务  要求对使用这种查询进行逻辑分析 表结构修改 等等

SQL  建议创建索引  缩小查询子集等方法

CyrusLeo | 园豆:220 (菜鸟二级) | 2016-07-23 15:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册