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

तालिका से नवीनतम संदेश ढूँढना, mysql में उपयोगकर्ता द्वारा समूहीकृत

इसे आज़माएं:

संदेशों से चुनें *जहां मौजूद नहीं है (संदेशों से 1 चुनें mmwhere (mm.fromuser =m.fromuser या mm.fromuser =m.touser) और (mm.touser =m.touser या mm.touser =m.fromuser) और mm.timestamp> m.timestamp) और m.fromuser ='user1' या m.touser ='user1';

यहां डेमो करें

यह शायद बेहतर होगा, आगे जाकर, दो उपयोगकर्ताओं के बीच बातचीत को एक विशेष बातचीत के रूप में फ़्लैग करना, फिर प्रत्येक संदेश एक वार्तालाप से संबंधित होता है, और इस प्रकार उन वार्तालापों को ढूंढना बहुत आसान हो जाता है जिनमें उपयोगकर्ता शामिल है, और इससे संबंधित संदेशों के बारे में जानकारी बातचीत। वैसे भी।

इसके बजाय इसे आजमाएं। उह।

select m.* 
  from messages m 
     left join messages m2 
       on ((m.fromuser = m2.fromuser and m.touser = m2.touser) 
           or (m.fromuser = m2.touser and m.touser = m2.fromuser)) 
         and m.timestamp < m2.timestamp 
  where (m.fromuser = 'user1' or m.touser = 'user1') 
  and m2.id is null;

यह not exists . से बेहतर होने की संभावना है संस्करण, भले ही मैं इसे ठीक करने का प्रबंधन करता हूं।

यह बेला वास्तव में काम करती है




  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. Wampserver में डेटाबेस आयात करने में 1064 SQL त्रुटि को ठीक करना

  4. PHP में MySQL परिणाम के मेमोरी उपयोग को समझना (PDO)

  5. MySQL में मार्जिन की गणना कैसे करें