आपके डेटा को देखते हुए, यह क्वेरी वही लौटानी चाहिए जो आप चाहते हैं:
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;
आम तौर पर, हालांकि, क्वेरी को ठीक करना बेहतर होता है ताकि यह डुप्लीकेट उत्पन्न न करे।