MySQL 查询尝试不使用 SELECT IN

MySQL query trying not to use SELECT IN

我有一个像这样的大查询:

SELECT Id , Nuser FROM t_logs 

WHERE Nuser IN 
(

SELECT t_user.kit.idUser
FROM t_kit 
RIGHT JOIN t_user_kit ON t_user_kit.Nkit = t_kit.Nkit 
LEFT JOIN t_user_master ON t_user_master.Nmaster = t_user_kit.idUser
WHERE Tkit='BOX1'

)

子查询 returns 一个用户列表,然后我从 t_log 中获取包含任何这些用户 (IN) 的所有行。

但我听说 SELECT IN 性能不佳,我不知道如何以其他方式创建此查询。有任何想法吗?谢谢!

加入子查询:

SELECT Id, Nuser
FROM t_logs AS l
JOIN (SELECT DISTINCT uk.idUser
      FROM t_kit AS k
      RIGHT JOIN t_user_kit AS uk ON uk.nKit = k.nKit
      LEFT JOIN t_user_master AS um ON um.nMaster = uk.idUser
      WHERE tKit = 'BOX1') AS k ON l.nUser = k.idUser
如果子查询 returns 多行具有相同的 idUser,则子查询中的

DISTINCT 可防止连接产生重复行。如果那不可能,您可以删除该修饰符。