Mysql查询优化问题

Mysql查询优化问题,mysql,sql,query-optimization,Mysql,Sql,Query Optimization,我面临一个查询优化问题。希望我能得到一些帮助。 场景是我有4个表 我的结果将是检查来自同一公司的用户不能上传相同的资产,资产检查将在公司级别进行。 我已经编写了一个查询,也可以达到这个目的,但是为了优化,我需要删除子查询。 我编写的查询有一个子查询。 我的问题是 这个查询似乎不需要子查询,因为它也使用表4 SELECT COUNT(tg.asset_id) FROM Table 1 tg INNER JOIN Table 4 mcu ON tg.User_id = mcu.User_id WH

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

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


这个查询似乎不需要子查询,因为它也使用表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;

希望这可能会有所帮助:

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

是的,我忘了,你没有使用表2和表3。您是否遗漏了什么?请粘贴解释计划,即在查询前加上解释并运行它,然后将结果粘贴到需要的位置,以便检查同一公司的用户是否已上载特定资产。这意味着您不需要该子查询,因为它也引用了表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;
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