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

जब मैं एकाधिक इनर जॉइन के साथ एसयूएम और COUNT का उपयोग करता हूं तो MySQL मैं डुप्लिकेट पंक्तियों को कैसे शामिल नहीं करूं?

यहाँ एक समाधान है। पहले एक व्युत्पन्न तालिका में सेट को अलग-अलग पंक्तियों में कम करें, फिर उस परिणाम के लिए GROUP BY लागू करें:

SELECT SUM(case when d.status = 2 then d.value end) as 'val_accepted'
FROM (
  SELECT DISTINCT p.id, p.status, p.value, pc.library_id
  FROM props p
  INNER JOIN p_contents AS pc ON p.id = pc.prop_id
  INNER JOIN contents AS c ON c.id = pc.library_id
  WHERE p.account_id = 3) AS d
GROUP BY d.library_id

आप DISTINCT(pc.library_id) . का उपयोग करते हैं आपके उदाहरण में, जैसे कि DISTINCT केवल कोष्ठक के अंदर के कॉलम पर लागू होता है। यह एक आम धारणा है। DISTINCT चयन-सूची के सभी स्तंभों पर लागू होता है। DISTINCT एक फ़ंक्शन नहीं है; यह एक क्वेरी संशोधक है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे जांचें कि MySQL डेटाबेस में मान मौजूद है या नहीं

  2. पुनरावर्ती फ़ंक्शन श्रेणी डेटाबेस

  3. mysql में डेटा के बिना डेटाबेस संरचना की प्रतिलिपि बनाएँ (खाली तालिकाओं के साथ)

  4. मैसकल टेक्स्ट में कीवर्ड ढूंढे

  5. Php और mysql का उपयोग करके Jquery स्टार रेटिंग ट्यूटोरियल