0

以下のクエリがあり、設定されたタイムスタンプに基づいて結果を返すのに問題なく動作します。

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

私がやりたいのは、上記の結果を取得することですが、ORDER BY タイムスタンプは 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

私はこれがうまくいくと信じています:

SELECT * FROM catalog c INNER JOIN query_data q ON c.part = q.part WHERE q.timestamp >= '2015-02-02' ORDER BY timestamp DESC;

あなたのアプローチの主な問題は、サブクエリを注文していることです。外部で結合と「順序付け」を使用すると、修正されるはずです。

于 2015-02-02T16:12:07.590 に答える