我有這3個查詢,我必須讓他們很多次(一個給定月的每一天)。這需要很多時間。避免創建臨時表/做一個「本地左連接」PHP MySQL
$sqldia = "CREATE TEMPORARY TABLE today AS (SELECT * FROM booking WHERE day = ".$weekday.")";
$sqldia2 = "CREATE TEMPORARY TABLE taken AS (SELECT * FROM b_users WHERE date = '".$date."')";
$sqldia3 = "SELECT A.from, A.to FROM today A LEFT JOIN turnostomados B ON A.from = B.to WHERE B.confirmed IS NULL";
查詢沒問題,代碼正常工作,但速度很慢。這需要快速查詢,並且不會佔用太多資源,因爲它可以在很短的時間內使用很多次。
我該如何改進? 有什麼辦法可以在PHP中進行「本地左連接」?
你是如何使用'taken'臨時表?第三個查詢可以用'booking'和'turnostomados'之間的'join'重寫,並添加適當的where規則 - 不需要第一個臨時表(可能是第二個)... – sgeddes
請添加PHP代碼將這些聲明稱爲不同的日期。有可能是*所有*可以用一個SQL語句替換。 – trincot