Mysql
 sql >> база данни >  >> RDS >> Mysql

Друг начин да подобрите SQL заявката, за да избегнете обединение?

Каквото и да изберете, имайте предвид, че краткият код не винаги е оптимален код. В много случаи, когато имате достатъчно различна логика, обединяването на резултатите наистина е най-оптималната (а понякога и най-чистата, програмно) опция.

Въпреки това, следното ИЛИ в клаузата WHERE изглежда покрива и двата ви случая...

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. Съхранена процедура, която автоматично изтрива редове, по-стари от 7 дни в MYSQL

  2. PHP 7 RC3:Как да инсталирате липсващ MySQL PDO

  3. Как да предадете стойност на база данни в хипервръзка с помощта на PHP + HTML

  4. Изпълнете скрипт/команда на Shell от MySQL Trigger/Stored Procedure

  5. max(дължина(поле)) в mysql