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

MySQL परिणामों की ठीक से तुलना और बहिष्करण

अब मुझे लगता है कि मैं इसे समझता हूं।

यदि उपयोगकर्ताओं के पास प्रत्येक प्रश्न का केवल एक ही उत्तर है, तो यह कार्य करना चाहिए:

select ua.quid,
       GROUP_CONCAT(IF(uid=1,answer,'') SEPARATOR '') as a1,
       GROUP_CONCAT(IF(uid=20008,answer,'') SEPARATOR '') as a2
from user_answers ua
where importance <> 1 and uid in (1, 20008)
group by ua.quid
having sum(uid = 1) > 0 and
       sum(uid = 20008) > 0 and
       max(case when uid = 1 then answer end) <> max(case when uid = 20008 then answer end);

संपादित करें:

बेशक, उपयोगकर्ता कर सकते हैं एकाधिक उत्तर हैं। यह मुझे join . की ओर धकेल रहा है एक समग्र-केवल दृष्टिकोण के बजाय दृष्टिकोण। दुर्भाग्य से, इस तरह के दृष्टिकोण के लिए full outer join की आवश्यकता होती है , जिसका MySQL समर्थन नहीं करता है। तो, आइए पहले उत्तर द्वारा एकत्रित करने का प्रयास करें। आपके पास केवल दो उपयोगकर्ता हैं, इसलिए हम मानों को पिवट करेंगे:

select ua.quid,
       GROUP_CONCAT(IF(user1 > 0, answer, '') SEPARATOR '') as a1,
       GROUP_CONCAT(IF(user20008 > 0, answer, '') SEPARATOR '') as a2
from (select ua.quid, ua.answer,
             max(case when ua.uid = 1 then 1 else 0 end) as user1,
             max(case when ua.uid = 20008 then 1 else 0 end) as user20008
      from user_answers ua
      where importance <> 1 and ua.uid in (1, 20008)
      group by ua.quid, ua.answer
     ) t
where t.user1 = 0 or t.user20008 = 0
group by ua.quid;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं किसी वेबसाइट से आईपी ब्लॉक को प्रतिबंधित करने के लिए PHP/MySQL-आधारित स्क्रिप्ट का उपयोग कैसे करूं?

  2. यदि मौजूद है तो mysql तालिका में सम्मिलित करें

  3. Fluent-NHibernate और MySQL का उपयोग करके ऑटो-इंक्रिमेंटिंग (int) पहचान कॉलम कैसे निर्दिष्ट करें

  4. mysql जहां स्ट्रिंग संख्याओं के साथ समाप्त होती है

  5. PHP में mysql_insert_id () के बजाय MYSQL में SELECT MAX(id) का उपयोग करना कितना बुरा है?