查看下面的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查询很好?或者什么可以改进或使其变小?