sql >> Database teknologi >  >> RDS >> Mysql

En anden måde at forbedre SQL-forespørgslen på for at undgå forening?

Uanset hvad du vælger, skal du være opmærksom på, at kort kode ikke altid er optimal kode. I mange tilfælde, hvor du har tilstrækkeligt divergerende logik, er forening af resultaterne virkelig den mest optimale (og nogle gange mest rene, programmæssigt) mulighed.

Når det er sagt, ser det ud til, at følgende OR i WHERE-sætningen dækker begge dine tilfælde...

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")


  1. Skift MySQL lagret procedure 'Database Collation' navn

  2. Opret en skalær brugerdefineret funktion i SQL Server

  3. Jeg kan ikke starte SQL Server-browseren

  4. Hvordan gemmer man ubegrænset antal tegn i Oracle 11g?