Saturday, 15 February 2014

mysql - 3 tables and 2 independent JOINs with CONCAT expressions -


मेरे पास आईडी के साथ निम्न 3 तालिकाओं हैं

तालिका: उपयोगकर्ता

 < कोड> उपयोगकर्ता | नाम 1 | जो 2 | जॉन  

तालिका: user_id1

  उपयोगकर्ता | आईडी 1 1 | 2 1 | 3 2 | 5  

तालिका: user_id2

  उपयोगकर्ता | आईडी 2 1 | 3 1 | 4  

मैं प्रत्येक उपयोगकर्ता के लिए निम्न परिणाम प्राप्त करना चाहूंगा

  नाम | आईडी 1 | आईडी 2 जो | 2,3 | 3,4 जॉन | 5 | NULL  

मैं इस क्वेरी का उपयोग करता हूं:

  SELECT user.name, GROUP_CONCAT (user_id1.id1) के रूप में "ids1", GROUP_CONCAT (user_id2.id2) AS "आईडी 2" उपयोगकर्ता से उपयोगकर्ता यूआई में यूजर_आईडी 1 में शामिल हों यूजर_आईडी 1। यूजर = यूज़र्स। यूज़र यूजर_आईडी 2 यूजर यूजर_आईडी 2 पर यूजर_आईडी 2. यूजर यूजर.युजर   <पी> लेकिन मुझे यह परिणाम मिलता है:  
  नाम | आईडी 1 | आईडी 2 जो | 2,2,3,3 | 3,4,3,4 जॉन | 5 | NULL  

क्या गलत है? आपकी मदद के लिए धन्यवाद

DISTINCT का उपयोग करना चाहिए

  SELECT user .name, GROUP_CONCAT (DISTINCT user_id1.id1) AS "ID1", GROUP_CONCAT (DISTINCT user_id2.id2) के रूप में "आईडी 2" के रूप में उपयोगकर्ता द्वारा उपयोगकर्ता द्वारा छोड़ा गया user_id1 user.id = user.user पर छोड़ दें user_id2 user_id2.user = users.user पर  

No comments:

Post a Comment