Another way to improve the SQL Query to avoid union?

后端 未结 4 1132
南方客
南方客 2021-01-18 00:23

User can search by Postcode (eg: L14, L15, L16) or Location from a textbox.

If user type in \"Liverpool\", it will find all the shops that are located in \"Liverpool

4条回答
  •  走了就别回头了
    2021-01-18 00:33

    Since all tables and selected columns are the same, you can simply do this:

      SELECT DISTINCT shops.*, DA.delivery_cost, DA.postcode AS AreaPostcode FROM shops
                 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")
    

    Like you said in Diego's answer, the conditions are a litle different! So, you compensate that difference in the WHERE clause.

提交回复
热议问题