Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Inny sposób na ulepszenie zapytania SQL w celu uniknięcia unii?

Cokolwiek wybierzesz, pamiętaj, że krótki kod nie zawsze jest optymalnym kodem. W wielu przypadkach, gdy masz wystarczająco rozbieżną logikę, łączenie wyników jest naprawdę najbardziej optymalną (a czasem najczystszą, programowo) opcją.

To powiedziawszy, poniższe OR w klauzuli WHERE wydaje się obejmować oba Twoje przypadki...

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystaj z konsoli MySQL za pomocą skryptu PowerShell

  2. Samouczek MySQL:instrukcja MySQL IN (zaawansowane)

  3. Zapytanie SQL, aby uzyskać sumę wszystkich wartości kolumn w ostatnim wierszu zestawu wyników wraz z sumą wierszy (grupuj według)

  4. MySQL:aktualizuj pole tylko wtedy, gdy warunek jest spełniony

  5. Jak sprawdzić, jakim zestawem znaków jest baza danych / tabela / kolumna MySQL?