0

異なるテーブルのタイムスタンプと比較したいと思います。tbl_1 のスタンプが tbl_2 の MAX(スタンプ) より大きいすべての行を取得したいと考えています。

select *
from tbl_1
where timestamp > (select MAX(TIMESTAMP) from tbl_2);

残念ながら、これは機能していません。私は常にゼロの結果を得ています:/。両方の列のデータ型は日付/時刻です


問題が見つかりました。

問題は、tbl_2 が空で日付がない場合、何も返されないことです。小さい日付を入力すると機能します。

4

2 に答える 2

1

手動比較を行うと役立つことがわかりました。クエリを実行します

select MAX(TIMESTAMP) from tbl_2

その日付が tbl_1 にある日付よりも大きい日付であるかどうかを確認します

select MAX(TIMESTAMP) from tbl_1

その場合、結果が得られない理由が説明されており、これらの大きなタイムスタンプを調べて、レコードを変更する必要があるかどうかを判断する必要があります。

これを機能させて、tbl_2 の MAX(TIMESTAMP) クエリに対して NULL を返している場合でもすべての行を返すには

select *
from tbl_1
where timestamp > (select MAX(TIMESTAMP) from tbl_2) or (select MAX(TIMESTAMP) from tbl_2) is null;
于 2013-10-24T13:25:00.153 に答える