【发布时间】:2009-08-21 16:59:48
【问题描述】:
我正在寻找有关如何优化此功能的提示....
SELECT u.uid,
u.username,
u.nid,
wd.pay
FROM (users_data AS u
LEFT JOIN winners_data wd
ON u.nid = wd.nid
AND u.uid = wd.uid)
LEFT JOIN dp_node dn
ON u.nid = dn.nid
WHERE u.uid = ".$val."
AND ((dn.TYPE = 'event'
AND (SELECT Count(nid)
FROM tournament_event
WHERE nid = u.nid
AND type_value IN ('A','B','C')) > 0)
OR (dn.TYPE = 'new_event'
AND (SELECT Count(nid)
FROM user_tournament_event
WHERE nid = u.nid
AND type_0_value IN ('Y','X')) > 0))
ORDER BY nid ASC
实际上 $val 只不过是来自以下查询的 uid,作为我循环的一部分,一次一个。
SELECT DISTINCT(dump.uid) FROM leader_Jdump AS 转储
有没有办法将此部分也添加到上述查询中?我想如果我能在 MySQL 级别做到这一点会更快。
【问题讨论】:
-
也许您可以缩进查询以提高可读性,我发现这种格式对大脑来说很难。
-
你离开了,我的大脑也跟着走了。
-
我不确定这里是否支持/格式化 HTML。所以在livejournal上发了一个帖子。 shantanuo.livejournal.com/64338.html
-
我在假设您使用
MySQL的情况下发布了一个答案(因为您的“.$val.”看起来像PHP和PHP始终是MySQL、Apache、Linux、Jolt和头巾),但您能确认一下吗? -
刚刚注意到您 LJ 帖子上的标签。没关系。