2

あるアイテムで作業していたクエリがあり、データセットを消去して最初からやり直したところ、データをまったく取得できなくなりました。
クエリは基本的に次のとおりです。

SELECT * 
FROM   TABLEA 
       LEFT JOIN TABLEB 
              ON TABLEA.ID = TABLEB.ID 
WHERE  TABLEA.ID = 1 
       AND TABLEB.DATE = (SELECT MAX(TABLEB.DATE) 
                          FROM   TABLEB 
                          WHERE  TABLEA.ID = 1) 

TableB は変更を追跡し、ID ごとに数百のエントリがあります。そのIDに関連する最後の時系列アイテムの単一行が必要です。
これを行うためのより良い方法があれば素晴らしいですが、この特定のクエリが機能しない理由を知りたいです。このクエリを実行すると:

SELECT MAX(TABLEB.DATE) 
FROM   TABLEB 
       LEFT JOIN TABLEB 
              ON TABLEA.ID = TABLEB.ID 
WHERE  TABLEA.ID = 1 

データセットの最後の日付の適切な値を取得します。

4

2 に答える 2

0

1 つの方法を次に示します。

SELECT *
FROM tableA LEFT JOIN
     tableB
     ON tableA.ID = tableB.ID
WHERE tableA.ID = 1
ORDER BY tableB.Date desc
LIMIT 1;
于 2013-09-09T21:02:08.293 に答える