2016-05-10 7 views
0

以下のクエリでループしたいIDのリストがあります。ですから、各IDに対してクエリを実行し、ID_FROM_LISTにLIST_OF_IDSの次のIDを取得させます。クエリ内のMYSQLループ変数

一覧:

LIST_OF_IDS = (379, 517, 519, 797, 800, 896, 897, 900, 902, 903, 904, 905, 906, 907, 919) 

問合せ:

select w.Record_Count, w.Distinct_Provider_Count from 
(select c as Record_Count, dc as Distinct_Provider_Count 
from 
(select * from centene_cic_decodes where standard_use in ('','P','PL')) r left join 
(
select 
deceased_status as t, count(*) as c , count(distinct group_key) as dc, 'provider_status' as cat 
from t_conditioncodes_0086252_cen_idvf2 
where NET_ID_ef = ID_FROM_LIST 
group by 1 
union all 
select 
name_status as t, count(*) as c , count(distinct group_key) as dc, 'name_status' as cat 
from t_conditioncodes_0086252_cen_idvf2 
where NET_ID_ef = ID_FROM_LIST 
group by 1 
) z 
on (if((z.t is null or z.t = ''), 'BLANK',z.t)) = r.Status_Codes and z.cat = r.Category 
order by r.category_rank, r.rank)w ; 

目標は、各IDに別々の出力を作成することです。だから、379のための1つのレポートが、その後517などのための独立した1 ...

(これは、完全なクエリと簡単にするためにIDのリストのほんの一部です。)

+0

...と何あなたの男性のループ変数:そのようなFIND_IN_SETと:テーブルには、カンマ区切りリスト(「1,2,3」EX)をループすることができます内部のクエリ... SQLのqheryはループを持っていない...最終的にplsqlはループを持っています..あなたの目標をより良く説明し、あなたのコードを確認してください.. – scaisEdge

+0

私はクエリを繰り返し実行して、毎回xt ID。 – user3670277

答えて

0

LIST_OF_IDSのすべてのIDがで参照されている場合選択を閉じることなく、よりあなたが持っている

select t.id id_from_list 
from mytable t 
where find_in_set(t.id, LIST_OF_IDS); 
関連する問題