Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL lồng nhau Chọn có thể trả về danh sách kết quả không

Bạn có thể muốn sử dụng GROUP_CONCAT() chức năng như sau:

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;

Hãy kiểm tra nó với dữ liệu mẫu của bạn:

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);

Kết quả của truy vấn:

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

Lưu ý rằng theo mặc định, kết quả của GROUP_CONCAT() được cắt ngắn đến độ dài tối đa là 1024 . Tuy nhiên, điều này có thể được đặt thành lớn hơn nhiều giá trị . Sử dụng lệnh SET nếu bạn cần sửa đổi nó, như sau:

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. MemoryError khi sử dụng json.dumps ()

  2. Lỗi MySQL / PHP:[2002] Chỉ cho phép một lần sử dụng mỗi địa chỉ socket (giao thức / địa chỉ mạng / cổng)

  3. Có MySQL tương đương với sprintf không?

  4. Sao chép MySQL và chuyển đổi dự phòng dựa trên GTID - Đi sâu vào các giao dịch có lỗi

  5. Công cụ biểu đồ của Google với PHP và MySQl