Mysql
 sql >> база данни >  >> RDS >> Mysql

Може ли MySQL Nested Select да върне списък с резултати

Може да искате да използвате 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. MySQL заявка, използваща CASE за ИЗБРАНЕ на множество колони

  2. Съхранявайте името на функцията в базата данни и след това я изпълнете

  3. конфигуриране на връзката към базата данни в рамката на Yii

  4. MySQL:изберете имейли само от една таблица, ако не е в друга таблица?

  5. MySQL заявката работи в phpmyadmin, но не и в php