查看下面的SQL查詢,它似乎運行良好。它允許我通過郵編或城鎮搜索記錄。如何改進SQL查詢
用戶輸入郵編或城市從文本框中。
從uk_postcodes
表中有郵編列表(BB1,BB2,BB3等)。
如果用戶輸入BB2或BB2 XXX,它將顯示一個在BB2區域發貨的店鋪記錄列表。 (我用PHP來獲得郵政編碼的第一部分,它進入SQL查詢之前)
如果Blackburn
用戶類型,那麼它會顯示與默認送達地區的商店名單(D.shop_id = S.shop_id AND D.postcode_id = S.postcode_id
)
$SQL = "(SELECT DISTINCT S.*, D.delivery_cost, D.postcode AS DeliveryAreaPostcode FROM shops AS S
JOIN shop_delivery_area AS D ON D.shop_id = S.shop_id
JOIN uk_postcodes AS P ON P.postcode_id = D.postcode_id
WHERE P.postcode = '$search' ORDER BY D.postcode)
UNION
(SELECT DISTINCT S.* , D.delivery_cost, D.postcode AS DeliveryAreaPostcode FROM shops AS S
JOIN shop_delivery_area AS D ON D.shop_id = S.shop_id AND D.postcode_id = S.postcode_id
JOIN uk_postcodes AS P ON P.postcode_id = D.postcode_id
WHERE S.town = '$search')";
是這個SQL查詢很好?或者什麼可以改進或使其變小?