我有以下查询,它可以根据设置的时间戳返回结果。
SELECT * FROM catalog WHERE part IN (SELECT part FROM query_data WHERE timestamp >= '2015-02-02') LIMIT 10
我想要做的是从DESC顺序获取上述结果但是ORDER BY时间戳。像这样的东西,但它不起作用。返回相同的值,但不是基于时间戳的DESC顺序。
SELECT * FROM catalog WHERE part IN (SELECT part FROM query_data WHERE timestamp >= '2015-02-02' ORDER BY timestamp DESC) LIMIT 10
思考? timestamp列只能在query_data表中找到。不确定这是否导致问题?
答案 0 :(得分:0)
我建议您观看此链接(subselect order timestamp)您遇到的问题就像您想的那样,即使订购了子选项,然后它在主查询中不合适,加入也会对这种情况。
希望它对你有所帮助。
答案 1 :(得分:0)
我相信这会奏效:
SELECT * FROM catalog c INNER JOIN query_data q ON c.part = q.part WHERE q.timestamp >= '2015-02-02' ORDER BY timestamp DESC;
您的方法的主要问题是您正在订购子查询。使用连接和“order by”外部应该修复它。