sql >> Databáze >  >> RDS >> Mysql

Další způsob, jak zlepšit dotaz SQL, aby se zabránilo sjednocení?

Ať už si vyberete cokoli, uvědomte si, že krátký kód není vždy optimální kód. V mnoha případech, kdy máte dostatečně divergentní logiku, je sjednocení výsledků skutečně nejoptimálnější (a někdy nejčistší, programově) možností.

Zdá se, že následující OR v klauzuli WHERE pokrývá oba vaše případy...

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. Pomalý start MySQL v režimu GTID? Problémem může být velikost binárního souboru protokolu

  2. MySQL - Hodnota 1 v DECIMAL(2, 2) vychází jako 0,99

  3. Nyní nebo brzy jsou k dispozici další online operace

  4. MySQL 1292 Nesprávná hodnota data a času