0

我有以下查询,它可以很好地根据设置的时间戳返回结果。

SELECT * FROM catalog WHERE part IN (SELECT part FROM query_data WHERE timestamp >= '2015-02-02') LIMIT 10

我想做的是从上面得到结果,但按 DESC 顺序排序时间戳。像这样的东西,但它不起作用。返回相同的值,但不是基于时间戳的 DESC 顺序。

SELECT * FROM catalog WHERE part IN (SELECT part FROM query_data WHERE timestamp >= '2015-02-02' ORDER BY timestamp DESC) LIMIT 10

想法?时间戳列仅在 query_data 表中找到。不确定这是否导致问题?

4

2 回答 2

0

我鼓励您观看此链接(子选择订单时间戳)您遇到的问题正如您所想的那样,即使子选择已订购然后它在主查询中不合适,Join 对于这种情况很有用。

希望它可以帮助你。

于 2015-02-02T16:05:16.570 回答
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”应该可以解决它。

于 2015-02-02T16:12:07.590 回答