Dù bạn chọn gì, hãy lưu ý rằng mã ngắn không phải lúc nào cũng là mã tối ưu. Trong nhiều trường hợp, khi bạn có đủ logic phân kỳ, việc thống nhất các kết quả thực sự là lựa chọn tối ưu nhất (và đôi khi rõ ràng nhất, theo chương trình).
Điều đó nói rằng, câu OR trong mệnh đề WHERE sau đây dường như bao hàm cả hai trường hợp của bạn ...
SELECT DISTINCT
shops.*,
DA.delivery_cost,
DA.postcode AS AreaPostcode
FROM
shops
INNER JOIN
shops_delivery_area as DA
ON (DA.shop_id = shops.id)
WHERE
(DA.postcode = "Liverpool")
OR
(DA.postcode = shops.postcode AND shops.location = "Liverpool")