[英]MySql how to avoid having to create temporary tables
我对SQL还是很陌生,需要通过WordPress插件( WP Data Tables )使用查询,但是该插件不允许创建临时表。
要解决此问题,我相信我必须在联接内创建新表,但是我不确定如何执行此操作。
我需要从中删除表创建的查询是:
create temporary table if not exists _SurveyData AS
(SELECT
_RefTable.RefID,
_RefTable.ClientRef,
_RefTable.SiteName,
_JobTable.JobID,
_JobTable.JobTypeID,
_JobTable.JobClosedDate
FROM
_RefTable, _JobTable
WHERE
_RefTable.RefID = _JobTable.RefID and _JobTable.JobTypeID = 1);
create temporary table if not exists _InstallData AS
(SELECT
_RefTable.RefID,
_RefTable.ClientRef,
_RefTable.SiteName,
_JobTable.JobID,
_JobTable.JobTypeID,
_JobTable.JobClosedDate
FROM
_RefTable, _JobTable
WHERE
_RefTable.RefID = _JobTable.RefID and _JobTable.JobTypeID = 2);
SELECT
_RefTable.RefID,
_RefTable.ClientRef,
_RefTable.SiteName,
_SurveyData.JobID,
_SurveyData.JobClosedDate,
_InstallData.JobID,
_InstallData.JobClosedDate
from
_RefTable, _SurveyData, _InstallData
Where
_RefTable.RefID = _SurveyData.RefID and _RefTable.RefID = _InstallData.RefID
order by RefID
任何帮助或朝着正确方向的观点将不胜感激。
将临时表更改为子查询。
尝试这个:
SELECT _RefTable.RefID,
_RefTable.ClientRef,
_RefTable.SiteName,
_SurveyData.JobID,
_SurveyData.JobClosedDate,
_InstallData.JobID,
_InstallData.JobClosedDate
from RefTable
INNER JOIN(
SELECT
_RefTable.RefID,
_RefTable.ClientRef,
_RefTable.SiteName,
_JobTable.JobID,
_JobTable.JobTypeID,
_JobTable.JobClosedDate
FROM RefTable, _JobTable WHERE _RefTable.RefID = _JobTable.RefID and _JobTable.JobTypeID = 1
) as _SurveyData on _RefTable.RefID = _SurveyData.RefID
INNER JOIN(
SELECT
_RefTable.RefID,
_RefTable.ClientRef,
_RefTable.SiteName,
_JobTable.JobID,
_JobTable.JobTypeID,
_JobTable.JobClosedDate
FROM _RefTable, _JobTable WHERE _RefTable.RefID = _JobTable.RefID and _JobTable.JobTypeID = 2
) as _InstallData on _RefTable.RefID = _InstallData.RefID
order by RefID;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.