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

Вътрешно присъединяване на Mysql с условие ИЛИ?

Можете да се присъедините на location_distance таблица два пъти с помощта на LEFT JOIN и след това използвайте COALESCE() функция, за да върне правилната стойност за разстояние :

изберете ot.id, ot.fromlocid, ot.tolocid, ot.otherdata, coalesce(ld1.distance, ld2.distance) distancefrom other_table otleft join location_distance ld1 на ld1.fromLocid =ot.toLocid и ld1. toLocid =ot.fromLocid ляво присъединяване location_distance ld2 на ld2.toLocid =ot.toLocid и ld2.fromLocid =ot.fromLocid  

Вижте SQL Fiddle с демонстрация

Това връща резултата:

<предварителен код>| ID | FROMLOCID | ТОЛОЦИД | ДРУГИ ДАННИ | РАЗСТОЯНИЕ |------------------------------------------------ ---| 12 | 5 | 3 | хххх | 70 || 22 | 2 | 4 | хххх | 63 || 56 | 8 | 6 | хххх | 15 || 78 | 3 | 5 | хххх | 70 |

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция за извикване на MySqlCommand

  2. Подреждане на артикули със съвпадащи етикети по брой съвпадащи етикети

  3. Изборът на MySQL изглежда много бавен, но не мога да мисля как да се подобри?

  4. Вземете данни от mysql база данни с помощта на php и jquery ajax

  5. MySQL ПОРЪЧАЙ ПО [стойност на полето за персонализиран SET]