Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैसकल इनर OR कंडीशन के साथ जुड़ें?

आप location_distance . पर शामिल हो सकते हैं LEFT JOIN using का उपयोग करके तालिका को दो बार और फिर COALESCE() . का उपयोग करें distance . के लिए सही मान लौटाने का कार्य करता है :

select ot.id,
  ot.fromlocid,
  ot.tolocid,
  ot.otherdata,
  coalesce(ld1.distance, ld2.distance) distance
from other_table ot
left join location_distance ld1
  on ld1.fromLocid = ot.toLocid
  and ld1.toLocid = ot.fromLocid 
left join location_distance ld2
  on ld2.toLocid = ot.toLocid
  and ld2.fromLocid = ot.fromLocid 

देखें SQL Fiddle with Demo

यह परिणाम देता है:

| ID | FROMLOCID | TOLOCID | OTHERDATA | DISTANCE |
---------------------------------------------------
| 12 |         5 |       3 |      xxxx |       70 |
| 22 |         2 |       4 |      xxxx |       63 |
| 56 |         8 |       6 |      xxxx |       15 |
| 78 |         3 |       5 |      xxxx |       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. सबस्ट्रिंग्स को कैसे संशोधित करें?

  2. मैं पायथन में एक MySQL डेटाबेस से कैसे जुड़ सकता हूँ?

  3. django मॉडल फ़ील्ड में वर्चर (एन) के बजाय चार (एन) डेटाटाइप को कैसे लागू करें?

  4. जेपीए TemporalType.Date गलत तारीख दे रहा है

  5. COMMIT या conn.setAutoCommit(true)