我有一个如下所示的MySQL查询。该查询运行良好,并返回了我正在寻找的结果。
我有一个餐桌广告系列,然后与一个餐桌客户一起加入, 然后是另外两个内部查询结果。
无论如何,有什么地方可以改善下面的查询以获得相同的结果。 使用GROUP_CONCAT然后对它们进行联接会带来性能问题吗?
SELECT
campaigns.*,
video_reports_temp.*,
pdf_reports_temp.*,
clients.email FROM ` campaigns`
INNER JOIN clients on clients.id = campaigns.client_id
INNER JOIN (
SELECT GROUP_CONCAT( video_reports.video_report separator '\n') as video_report,
GROUP_CONCAT( video_reports.created_at separator '\n') as video_report_date,
video_reports.campaign_id
FROM video_reports
GROUP BY campaign_id
) video_reports_temp ON video_reports_temp.campaign_id= campaigns.id
INNER JOIN (
SELECT GROUP_CONCAT( pdf_reports.pdf_report separator '\n') as pdf_report ,
GROUP_CONCAT( pdf_reports.created_at separator '\n') as pdf_report_date,
pdf_reports.campaign_id
FROM pdf_reports
GROUP BY campaign_id
) pdf_reports_temp ON pdf_reports_temp.campaign_id= campaigns.id
WHERE campaigns.id=$id