1

次の2つのクエリがあります。

Query 1 : 
select distinct(thread_id) from records where client_name='MyClient'

Query 2 :
select max(thread_no) from records 
where thread_id='loop_result_from_above_query' AND action='Reviewed'

それらを単一のクエリに結合することは可能ですか?

2 番目のクエリは、最初のクエリのすべての結果に対して実行されます。

ありがとうございました。

mysql レコードの小さなスニペットの添付画像を参照してください。 ここに画像の説明を入力

特定の一連の thread_id の最新レコードとして action="MyAction" を持つレコードのみを出力するには、単一の mysql クエリが必要です。サンプルデータセット: Sr: 7201 のレコード

これが私を助けるのに役立つことを願っています:)

4

4 に答える 4

0

これを試して。

SELECT * 
FROM   (SELECT Row_number() 
                 OVER ( 
                   partition BY thread_id 
                   ORDER BY thread_no)      no, 
               Max(thread_no) 
                 OVER( 
                   partition BY thread_id ) Maxthread_no, 
               thread_id, 
               action, 
               client_name 
        FROM   records
        Where client_name = 'MyClient') AS T1 
WHERE  no = 1 
       AND action = 'Reviewed'
于 2013-04-01T10:31:14.893 に答える
0
SELECT a.maxthreadid, 
       b.maxthreadno 
FROM   (SELECT DISTINCT( thread_id ) AS MaxThreadId 
        FROM   records 
        WHERE  client_name = 'MyClient') a 
       CROSS JOIN (SELECT Max(thread_no) AS MaxThreadNo 
                   FROM   records 
                   WHERE  thread_id = 'loop_result_from_above_query' 
                          AND action = 'Reviewed') b 
于 2013-04-01T09:56:31.910 に答える