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

क्या MySQL नेस्टेड परिणामों की वापसी सूची का चयन कर सकता है

आप <का उपयोग करना चाह सकते हैं कोड>GROUP_CONCAT() समारोह, इस प्रकार है:

SELECT    t1.id, 
          t1.first_name, 
          t1.last_name,
          GROUP_CONCAT(DISTINCT job_id ORDER BY job_id SEPARATOR ',') job_id
FROM      Table1 t1
JOIN      Table2 t2 ON (t2.Person_id = t1.id)
GROUP BY  t1.id;

आइए आपके उदाहरण डेटा के साथ इसका परीक्षण करें:

CREATE TABLE Table1 (
    id int AUTO_INCREMENT PRIMARY KEY, 
    first_name varchar(50), 
    last_name varchar(50));

CREATE TABLE Table2 (
    id int AUTO_INCREMENT PRIMARY KEY, 
    person_id int,
    job_id int);

INSERT INTO Table1 VALUES (NULL, 'Joe', 'Bloggs');
INSERT INTO Table1 VALUES (NULL, 'Mike', 'Smith');
INSERT INTO Table1 VALUES (NULL, 'Jane', 'Doe');

INSERT INTO Table2 VALUES (NULL, 1, 1);
INSERT INTO Table2 VALUES (NULL, 1, 2);
INSERT INTO Table2 VALUES (NULL, 2, 2);
INSERT INTO Table2 VALUES (NULL, 3, 3);
INSERT INTO Table2 VALUES (NULL, 3, 4);

क्वेरी का परिणाम:

+----+------------+-----------+--------+
| id | first_name | last_name | job_id |
+----+------------+-----------+--------+
|  1 | Joe        | Bloggs    | 1,2    | 
|  2 | Mike       | Smith     | 2      | 
|  3 | Jane       | Doe       | 3,4    | 
+----+------------+-----------+--------+

ध्यान दें कि डिफ़ॉल्ट रूप से, GROUP_CONCAT() . का परिणाम है अधिकतम लंबाई तक छोटा 1024 . हालांकि इसे बहुत बड़े पर सेट किया जा सकता है मूल्य . यदि आपको इसे संशोधित करने की आवश्यकता है, तो SET कमांड का उपयोग इस प्रकार करें:

SET GLOBAL group_concat_max_len = 2048;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. यदि मौजूद है तो मैं कैसे अपडेट करूं, यदि नहीं तो सम्मिलित करें (AKA upsert या merge) MySQL में?

  2. इन दो जॉइनिंग टेबल दृष्टिकोणों के बीच अंतर?

  3. संग्रहीत प्रक्रिया पर कॉल करें, जब mysql में एक चर में प्रक्रिया का नाम होता है

  4. सेट निर्देशिका का उपयोग करते समय MySQL OUTFILE --सुरक्षित-फ़ाइल-निजी त्रुटि में निर्यात कर रहा है

  5. Mysql में एक सेल का डेटा बदलें