2016-07-07 8 views
0

タイトルのように、変数またはselectステートメントのwhere句からサブクエリの値を格納したいとします。サブクエリの結果を1つのステートメントで複数回使用する

私は正常に動作この文ました:問題がある

SELECT a.ticket_id,count(b.ticket_id) as count FROM incidents a JOIN im_data b ON a.ticket_id=b.ticket_id group by a.ticket_id having count(b.ticket_id) > 5 

SET @post =1; 
SELECT a.ticket_id,@post FROM incidents a WHERE 5 < @post := (SELECT count(*) FROM im_data b WHERE a.ticket_id=b.ticket_id); 

またはコースの参加でも可能だろうとの2つの文で

SELECT a.ticket_id, (SELECT count(*) FROM im_data b WHERE a.ticket_id=b.ticket_id) as count FROM incidents a WHERE 7 < (SELECT count(*) FROM im_data b WHERE a.ticket_id=b.ticket_id); 

をただ1つのクエリで同じことを実行できるかどうかを知りたいだけです。 は、私は、MySQLで動作していない多くの方法でそれを実行しようとしました:あなたは多分タスクを完了しようではありませんregonizeとして、記憶することが可能であるかどうかを知り得るとしている

SELECT a.ticket_id, (SELECT count(*) FROM im_data b WHERE a.ticket_id=b.ticket_id) as count FROM incidents a WHERE 7 < count 

SELECT a.ticket_id, count FROM incidents a WHERE 7 < (SELECT count(*) FROM im_data b WHERE a.ticket_id=b.ticket_id) as count; 

SELECT a.ticket_id, count FROM incidents a WHERE 7 < @a (SET @a = (SELECT count(*) FROM im_data b WHERE a.ticket_id=b.ticket_id); 

変数または別名でサブクエリを使用して同じステートメントで2回以上ステートメントを使用せずに使用するか、ステートメント内で値を複数回使用する別の方法があります。

stackoverflowの;-)上の問題のための研究内容ながら、私はそれを自分自身を発見したthentt

+0

サブテーブルには一時テーブルを使用できます。または、*インラインビュー*を使用して、オンザフライで「一時テーブル」を作成できます - https://www.toadworld.com/platforms/mysql/w/wiki/6347.inline-viewsを参照してください。 –

答えて

0

Greetz。

join (select @post := 1) 

です。

SELECT a.ticket_id,@post FROM incidents a JOIN (SELECT @post := 1) b WHERE 5 < @post := (SELECT count(*) FROM im_data b WHERE a.ticket_id=b.ticket_id); 
関連する問題