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

उन पंक्तियों का चयन कैसे करें जिनमें पिवट तालिका के माध्यम से कुछ संबंध हैं?

  • आप GROUP BY कर सकते हैं यूजर आईडी और नाम पर।
  • HAVING का उपयोग करें SUM() with के साथ क्लॉज मामलों को फ़िल्टर करने के लिए एकत्रीकरण।
  • यदि कोई उपयोगकर्ता किसी विशेष दिन काम नहीं करता है, SUM() उस दिन के लिए शून्य होगा, पोस्ट जॉइन करें।

पहले मामले के लिए (बिल्कुल . काम करता है) सप्ताह के सभी कार्यदिवस), कोशिश करें:

SELECT u.id, u.name
FROM USERS AS u 
JOIN WORKDAYS AS wd ON wd.user_id = u.id 
JOIN DAYS AS d ON d.id = wd.day_id 
GROUP BY u.id, u.name 
HAVING SUM(d.name = 'monday') 
   AND SUM(d.name = 'tuesday') 
   AND SUM(d.name = 'wednesday') 
   AND SUM(d.name = 'thursday') 
   AND SUM(d.name = 'friday') 
   AND SUM(d.name = 'sunday') = 0 
   AND SUM(d.name = 'saturday') = 0

दूसरे मामले के लिए, बस sunday . पर शर्तों को हटा दें और saturday . कोशिश करें:

SELECT u.id, u.name
FROM USERS AS u 
JOIN WORKDAYS AS wd ON wd.user_id = u.id 
JOIN DAYS AS d ON d.id = wd.day_id 
GROUP BY u.id, u.name 
HAVING SUM(d.name = 'monday') 
   AND SUM(d.name = 'tuesday') 
   AND SUM(d.name = 'wednesday') 
   AND SUM(d.name = 'thursday') 
   AND SUM(d.name = 'friday') 


  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. जब क्वेरी में GROUP BY हो तो कुल का प्रतिशत कैसे प्राप्त करें?

  4. एक संघ या एक में शामिल हों का प्रयोग करें - तेज़ क्या है

  5. SQL अनुक्रमणिका का परिचय