0
다음 쿼리는 예상대로 작동합니다. 그러나 데이터가 선택된 요약 테이블이 너무 큽니다. 쿼리에 많은 시간이 소요됩니다.조인 대신 임시 테이블
SELECT s.date_time AS date_time,SUM(s.requests) AS sum_requests,SUM(s.impressions) AS sum_views,SUM(s.clicks) AS sum_clicks,SUM(s.conversions) AS sum_conversions,
SUM(s.total_revenue) AS sum_revenue,SUM(s.total_revenue) AS sum_spend,
SUM(s.total_basket_value) AS sum_bv,SUM(s.total_num_items) AS sum_num_items,SUM(s.total_pubrevenue) AS sum_pubrevenue
FROM ox_data_summary_ad_hourly AS s
INNER JOIN ox_banners AS d ON (d.bannerid=s.ad_id)
INNER JOIN ox_campaigns AS m ON (m.campaignid=d.campaignid)
INNER JOIN ox_clients AS a ON (a.clientid=m.clientid)
LEFT JOIN ox_zones AS z ON (z.zoneid=s.zone_id)
LEFT JOIN ox_affiliates AS p ON (p.affiliateid=z.affiliateid)
WHERE a.agencyid = 3 AND z.zone_type = 'application' AND z.delivery = 8
AND s.date_time>='2012-07-01 00:00:00' AND s.date_time<='2012-07-01 23:59:59'
GROUP BY date_time
조인을 단순화해야합니다. 모든 조인에 대한 임시 테이블을 만든 다음 해당 테이블을 기본 테이블에 조인하는 방법이 있습니까? 이것은 내가 지금까지 시도한 것입니다.
drop table if exists test.helper;
create table test.helper
select d.network_type , d.is_network, d.bannerid, p.agencyid, z.zone_type, z.delivery , z.zoneid
FROM ox_banners as d
INNER JOIN ox_campaigns AS m ON (m.campaignid=d.campaignid)
INNER JOIN ox_clients AS a ON (a.clientid=m.clientid)
left JOIN ox_agency as oa ON (oa.account_id = a.clientid)
left JOIN ox_affiliates AS p ON (p.agencyid = oa.agencyid)
left JOIN ox_zones AS z ON (z.affiliateid = p.affiliateid);
alter table test.helper add key(bannerid, zoneid);
그러나 원본 테이블과 조인 할 때 올바른 결과를 반환하지 않습니다.
SELECT s.ad_id, s.date_time AS date_time,SUM(s.requests) AS sum_requests,SUM(s.impressions) AS sum_views,SUM(s.clicks) AS sum_clicks,SUM(s.conversions) AS sum_conversions,
SUM(s.total_revenue) AS sum_revenue,SUM(s.total_revenue) AS sum_spend,
SUM(s.total_basket_value) AS sum_bv,SUM(s.total_num_items) AS sum_num_items,SUM(s.total_pubrevenue) AS sum_pubrevenue
FROM ox_data_summary_ad_hourly AS s
inner JOIN test.helper AS d ON (d.bannerid=s.ad_id)
where d.agencyid = 3 AND d.zone_type = 'application' AND d.delivery = 8 and s.date_time>='2012-07-01 00:00:00' AND s.date_time<='2012-07-01 23:59:59'
GROUP BY date_time
mysql에서 데이터를 이동하고 하나의 조인만을 지원하는 다른 DB로 옮길 계획입니다. 그러므로 질문. – shantanuo
하나의 참여? 와우. 어떤 "데이터베이스"입니까? – paulbailey