0

我面临一个查询优化问题。希望我能得到一些帮助。场景是我有 4 张桌子。

Table 1 [asset_id, asset_name, User_id].
Table 2 [company_id, Company_name]
Table 3 [User_id, User_name]
Table 4 [Map_id, User_id, Company_id ]

我的结果将是检查来自同一公司的用户无法上传相同的资产,资产检查将在公司级别进行。我已经写了一个查询,也可以达到目的,但我需要消除子查询以进行优化。
我写的查询有一个子查询。我的查询是

SELECT COUNT(tg.asset_id) 
  FROM Table 1 tg 
 INNER JOIN Table 4 mcu 
    ON ((tg.User_id = mcu.User_id  )
   AND mcu.Company_id = (select Table 4.Company_id 
                           from Table 4 
                          where Table 4.User_id = 1))
WHERE tg.asset_name = 't1' ;
4

2 回答 2

0

希望这可能会有所帮助::

SELECT 
COUNT(tg.asset_id) 
FROM Table 1 tg
INNER JOIN Table 4 mcu ON (tg.User_id = mcu.User_id and Company_id = ClientID )

WHERE tg.asset_name = 't1' and mcu.User_id = 1
于 2013-07-12T06:50:56.340 回答
-1

此查询似乎不需要子查询,因为它也使用表 4。

SELECT COUNT(tg.asset_id) FROM Table 1 tg 
INNER JOIN Table 4 mcu ON tg.User_id = mcu.User_id
WHERE tg.asset_name = 't1'
AND mcu.ClientID = mcu.Company_id
AND mcu.User_id = 1;
于 2013-07-12T06:40:34.280 回答