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

निजी संदेश प्रणाली। प्रत्येक वार्तालाप का अंतिम संदेश सूचीबद्ध करना

यह मानता है id एक ऑटो-इन्क्रीमेंट कॉलम है:

SELECT MAX(id) AS id
FROM pms
WHERE id_to = 1 OR id_from = 1
GROUP BY (IF(id_to = 1, id_from, id_to))

मान लें कि आपके पास id_from है और id_to अनुक्रमित, यह भिन्नता संभवतः बेहतर प्रदर्शन करेगी क्योंकि MySQL नहीं जानता कि OR:

. के साथ क्या करना है
SELECT MAX(id) AS id FROM
(SELECT id, id_from AS id_with
FROM pms
WHERE id_to = 1
UNION ALL
SELECT id, id_to AS id_with
FROM pms
WHERE id_from = 1) t
GROUP BY id_with

यहां उन आईडी के लिए संदेश प्राप्त करने का तरीका बताया गया है:

SELECT * FROM pms WHERE id IN
    (SELECT MAX(id) AS id FROM
    (SELECT id, id_from AS id_with
    FROM pms
    WHERE id_to = 1
    UNION ALL
    SELECT id, id_to AS id_with
    FROM pms
    WHERE id_from = 1) t
    GROUP BY id_with)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. शुद्ध SQL में बैकस्लैश ( \ ) खोजने के लिए मुझे डबल-एस्केप (4 \ का उपयोग करें) की आवश्यकता क्यों है?

  2. हाइबरनेट, MySQL एप्लिकेशन में import.sql फ़ाइल का उपयोग करके तालिका में डिफ़ॉल्ट डेटा कैसे सम्मिलित करें?

  3. क्या आप ON DUPLICATE KEY में समग्र मानों का उपयोग कर सकते हैं

  4. जेपीए मूल क्वेरी का उपयोग करके एक ही नाम के साथ एकाधिक कॉलम कैसे चुनें?

  5. 'दिनांक' के लिए अमान्य डिफ़ॉल्ट मान