gpt4 book ai didi

MySQL 查询尝试不使用 SELECT IN

转载 作者:行者123 更新时间:2023-11-29 12:27:56 24 4
gpt4 key购买 nike

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

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'

)

子查询返回用户列表,然后我从 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
如果子查询返回具有相同 idUser 的多行,则子查询中的

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

关于MySQL 查询尝试不使用 SELECT IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28024483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com