0
使用PHP和SQLITE3,我有一個查詢,如:如何在多個查詢中存儲查詢結果給我們?
$firstquery = "SELECT id FROM mytable WHERE critera=........";
這可以給我從1到任何地方1000多家的ID的取決於標準。
然後,我在我的頁面上使用這個找到的集合,最多可以查詢40個其他SQL查詢。所有的變化,例如:
$secondquery = "SELECT name FROM nametable WHERE nametable.id IN (".$firstquery.")";
$thirdquery = "SELECT car FROM cartable WHERE cartable.id IN (".$firstquery.")";
現在,當我有很多,失去了這些$第二,第三$ ... $ thirtiethquery的頁面開始越來越慢,我覺得需要不斷向$ firstquery跑過去,結束沒有幫助。
有沒有辦法避免需要反覆運行$ firstquery?也許以某種方式存儲結果? (我試圖將結果存儲爲一個字符串,並將其存儲在WHERE中,但如果有成千上萬個參數,則該子句具有太多參數)。
感謝您的任何想法! MacKniven
我首先要問:其他表中沒有相關的ID(作爲外鍵)嗎?無論如何,你可以從'firstquery'構建一個逗號分隔的id字符串,然後在IN子句中使用這個字符串和其他查詢。這是避免重複「firstquery」查詢的一種方法。不過,我相信可以完成其他處理「調整」,儘管我必須獲得更多信息才能進行其他優化改進。 –
爲什麼不使用'JOIN'並讓每個查詢運行一次而不添加* $ firstquery *? – Parfait