[英]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.