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

MySql अलग-अलग पंक्तियों की संख्या के साथ कई तालिकाओं में शामिल होता है

आपके डेटा को देखते हुए, यह क्वेरी वही लौटानी चाहिए जो आप चाहते हैं:

SELECT t1.*,
       GROUP_CONCAT(t2.info SEPARATOR '|') AS info,
       GROUP_CONCAT(t2.data SEPARATOR '|') AS data
FROM table1 t1 LEFT JOIN
     join j
     ON j.id_a = t1.id_a LEFT JOIN
     table2 t2
     ON t2.id_b = j.id_b
WHERE t1.id_a = ?
GROUP BY t1.id_a;

आप चाहें तो DISTINCT . का उपयोग करके डुप्लीकेट हटा सकते हैं :

SELECT t1.*,
       GROUP_CONCAT(DISTINCT t2.info SEPARATOR '|') AS info,
       GROUP_CONCAT(DISTINCT t2.data SEPARATOR '|') AS data
FROM table1 t1 LEFT JOIN
     join j
     ON j.id_a = t1.id_a LEFT JOIN
     table2 t2
     ON t2.id_b = j.id_b
WHERE t1.id_a = ?
GROUP BY t1.id_a;

आम तौर पर, हालांकि, क्वेरी को ठीक करना बेहतर होता है ताकि यह डुप्लीकेट उत्पन्न न करे।




  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 utf 8 एन्कोडिंग

  2. 500GB SQL टेबल को Apache Parquet में कैसे बदलें?

  3. इस MySQL क्वेरी को कैसे ऑप्टिमाइज़ करें? लाखों पंक्तियाँ

  4. 10 मिनट के भीतर लगातार लेन-देन खोजें

  5. UTF - 8 जेपीए और ग्लासफ़िश 4.0 . के साथ