2017-01-26 8 views
0

エポック時間を含むrecording_time列。SQLの自己結合の最適化

しかし、以下のクエリが結合を行う前に実際にテーブルを制限しているとは確信していません。

SELECT B.ani 
    FROM [app].[dbo].[recordings] B 
    INNER JOIN [app].[dbo].[recordings] A 
    ON B.callid = A.callid AND B.dnis = A.ani 
    where A.filename LIKE '%680627.wav' 
    AND B.recording_time > 1485340000 
+1

私はここであなたの質問を理解していません。あなたは何を求めているのか説明しようとすることができますか? –

+0

確かに、基本的には、フルテーブルの自己結合を避けたいと思っています。私は興味のある行が今日作成されていることを知っています。データベースへの影響を最小限にしようとしています。 – kernelpanic

+0

https://blog.sqlauthority.com/2009/04/06/sql-server-logical-query-processing-phases-order-of-statement-execution/ –

答えて

1

今日作成された行をフィルタリングし、その新しいテーブルを使用して結合します。

SELECT B.ani 
FROM (SELECT * FROM [app].[dbo].[recordings] where recording_time > 1485340000) B 
INNER JOIN (SELECT * FROM [app].[dbo].[recordings] where recording_time > 1485340000) A 
ON B.callid = A.callid AND B.dnis = A.ani 
where A.filename LIKE '%680627.wav' 
関連する問題