这个mysql查询语法有什么问题?

时间:2013-06-28 16:09:43

标签: mysql optimization syntax sql-order-by

我尝试优化我的查询,因为为了更多的理解,为了更多的理解而排序 我试图实现这个好的解决方案:Slow query when using ORDER BY

我的桌子里有70K,当我这样做时,我有这个神:#1248 - 每个派生的表必须有自己的别名

我的原始查询如下所示:

SELECT * FROM 
 ( SELECT * FROM profile
    LEFT JOIN profileg USING( id )
    WHERE X NOT IN ( SELECT A FROM B ) AND ( S = 1 )
    DESC LIMIT 0, 20
) ORDER BY M
你可以帮忙吗?!? 问候, 杰西卡

1 个答案:

答案 0 :(得分:1)

第二个查询中的错误是您的子查询无效。这是你追求的吗?

SELECT *
FROM ( SELECT * FROM profile
    LEFT JOIN profileg USING( id )
    WHERE X NOT IN ( SELECT A FROM B ) AND S = 1
    ) as table1
ORDER BY M DESC 
LIMIT 0, 20

虽然我没有看到子查询的重点。做

SELECT * FROM profile
LEFT JOIN profileg USING( id )
WHERE X NOT IN ( SELECT A FROM B ) AND S = 1 
ORDER BY M DESC 
LIMIT 0, 20

似乎基本上是相同的,除了你执行少一个查询。