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

आस-पास के टाइमस्टैम्प के आधार पर दो तालिकाओं में शामिल हों

"आस-पास" बल्कि अस्पष्ट है।
table2 में शामिल होने के लिए जहां timee dateee . के 10 सेकंड के अंदर होता है भविष्य में:

SELECT *
FROM   table1 t1
LEFT   JOIN table2 t2 ON t2.timee BETWEEN t1.dateee
                                      AND t1.dateee + interval '10 sec';
  • LEFT JOIN table1 . से पंक्तियां रखता है परिणाम में, table2 . में मिलान के बिना भी ।

  • कई मैच हो सकते हैं, ताकि बेस टेबल से प्रत्येक पंक्ति को विभिन्न संयोजनों में कई बार लौटाया जा सके।

वैकल्पिक

table1 . में प्रत्येक पंक्ति में शामिल होने के लिए अगले उच्च टाइमस्टैम्प के साथ पंक्ति में। बिल्कुल table1 . पर प्रति पंक्ति परिणाम में एक पंक्ति :

SELECT *
FROM   table1 t1
LEFT   JOIN LATERAL (
   SELECT *
   FROM   table2 t2
   WHERE  t2.timee >= t1.dateee
   ORDER  BY t2.timee
   LIMIT  1
   ) ON TRUE;

(timee) . पर एक इंडेक्स प्रदर्शन के लिए आवश्यक है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLAlchemy + postgreSQL का उपयोग करके कनेक्शन की संख्या कैसे कम करें?

  2. अगले दिन फिर से खेले गए प्रतिशत की गणना

  3. मानदंड का उपयोग करके नेस्टेड क्वेरी को हाइबरनेट करें

  4. SQL में सरल ग्राफ़ खोज एल्गोरिथम (PostgreSQL)

  5. क्वेरी जो रिक्त स्थान को अनदेखा करती है