0

私は多くのオプションを選択できるアプリケーションを持っています。4つのテーブルがあり、各フィルターから4つの異なる用語があり、値のカウントを取得する場合に追加することもできます。クエリが苦手な場合は、目的の結果を取得する方法を知っているだけです。したがって、クエリは次のようになります。

select distinct(maindbgroupid) from ((SELECT mainDBGroupID from 
groupstatisticsdata.seniority where ( `name` = 'Senior' )AND maindbgroupid in (SELECT 
mainDBGroupID from groupstatisticsdata.Function where ( `name` = 'Information Technology' 
)AND (`Value` >1000) AND maindbgroupid in (SELECT mainDBGroupID from 
groupstatisticsdata.Industry where ( `name` = 'Information Technology and Services' )AND 
(`Value` >1000))))) t join maingroupdb.campaigns on campaigns.groupid=t.maindbgroupid 
where campaigns.campaignName='Campaign1101'

これは一例です。複数のフィルターを使用すると常にタイムアウトになるため、改善方法を教えてください。

クエリで行っているのは、テーブル間の交差です。

4

1 に答える 1

0

これを試して ::

select distinct(mainDBGroupID)
 from 
 groupstatisticsdata.seniority
 inner join groupstatisticsdata.Function on (groupstatisticsdata.seniority.maindbgroupid=groupstatisticsdata.Function.mainDBGroupID)
inner join  groupstatisticsdata.Industry on (groupstatisticsdata.Industry.mainDBGroupID=groupstatisticsdata.seniority.maindbgroupid)
inner join maingroupdb.campaigns on campaigns.groupid=t.maindbgroupid 
where groupstatisticsdata.seniority.`name` = 'Senior'  AND 
 groupstatisticsdata.Function.`name` = 'Information Technology' 
 AND `Value` >1000 
 AND maindbgroupid 
AND groupstatisticsdata.Industry.`name` = 'Information Technology and Services' )
AND 
groupstatisticsdata.Industry.`Value` >1000 
AND campaigns.campaignName='Campaign1101'
于 2012-07-09T05:11:27.317 に答える