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

MySQL:आईडी पुनर्प्राप्त करना जहां बिल्कुल 2 पंक्तियां समान आईडी साझा करती हैं लेकिन अलग-अलग उपयोगकर्ता आईडी होती हैं

यहां कोई सबक्वायरी का उपयोग नहीं करते हुए, एक प्रदर्शनकारी दृष्टिकोण है। आप केवल Having . में परिणामों को फ़िल्टर कर सकते हैं सशर्त एकत्रीकरण का उपयोग करते हुए खंड:

SELECT 
  conversation_id 
FROM assoc_user__conversation 
GROUP BY conversation_id 
HAVING 
  -- all the rows to exists only for 1000001 or 1000002 only
  SUM(user_id IN (1000001, 1000002)) = COUNT(*) 

परिणाम

| conversation_id |
| --------------- |
| 10              |

डीबी फिडल पर देखें

सशर्त एकत्रीकरण का एक और रूपांतर संभव है:

SELECT 
  conversation_id 
FROM assoc_user__conversation 
GROUP BY conversation_id 
HAVING 
  -- atleast one row for 1000001 to exists
  SUM(user_id = 1000001) AND  
  -- atleast one row for 1000002 to exists
  SUM(user_id = 1000002) AND  
  -- no row to exist for other user_id values
  NOT SUM(user_id NOT IN (1000001, 1000002)) 


  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. क्या एक टेबल में दो प्राथमिक कुंजी बनाना संभव है?

  3. यदि मौजूद नहीं है तो MySql तालिका सम्मिलित करें अन्यथा अद्यतन करें

  4. पायथन में MySQLdb के साथ विंडोज प्रमाणीकरण

  5. MySQL विदेशी कुंजी बाधा नहीं जोड़ सकता