我有三個表格:患者,obg和醫生。執行SQL JOIN需要長
請幫我理解爲什麼需要這麼多時間(超過1分鐘)。當我不使用searchtxt時,我得到的時間較少,但如果我在某些字段中使用searchtxt,則在檢索結果時出現延遲。
SELECT
a.ID AS Pt_ID,
a.Pt_Name,
a.Pt_Sex,
Date_Format(a.Pt_DOB,'%Y/%m/%d') as Pt_DOB,
a.Pt_Age,
a.Pt_Opt_HrF,
a.Pt_HrF_Name,
a.Pt_Mobile,
a.Pt_Address,
b.ID as R_ID,
Date_Format(b.RP_DATE,'%Y/%m/%d') as RP_DATE,
b.B_HISTORY,
b.Ref_Dr_ID,
Date_Format(b.LMP,'%Y/%m/%d') as LMP,
b.H_O_G,
b.P_U_S,
b.RP_TY,
b.Ref_Dr_ID,
c.Dr_Name
FROM
patient a,
obg b,
doctor c
where
a.DEL_FLG='N' and b.DEL_FLG='N' and
(b.RP_DATE BETWEEN STR_TO_DATE('".$_POST['frm_dt']."', '%Y/%m/%d') AND STR_TO_DATE('".$_POST['to_dt']."', '%Y/%m/%d')) and
a.ID LIKE '%".$_POST['searchtxt']."%'
OR b.ID LIKE '%".$_POST['searchtxt']."%'
OR a.Pt_Name LIKE '%".$_POST['searchtxt']."%'
OR a.Pt_DOB = STR_TO_DATE(".$_POST['searchtxt'].",'%Y/%m/%d')
OR a.Pt_Address LIKE '%".$_POST['searchtxt']."%'
OR a.Pt_HrF_Name LIKE '%".$_POST['searchtxt']."%'
OR a.Pt_Mobile LIKE '%".$_POST['searchtxt']."%'
a.ID = b.Pt_ID and
b.Ref_Dr_ID = c.ID
order by b.CRTD_DT Desc
'AND' /'OR'警告... – jarlh
嗨jarlh will you請詳細解釋我在哪裏和/或警告,但我得到這個sql qu的結果它需要超過1分鐘,這是問題 –
也許你可以使用MySQL的任何版本的「for xml path」,並在一個單獨的地方做一個類似的地方,而不是「或」所有這些列。 – artm