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

Опитвате се да върнете всички колони от дъщерни записи за родителски запис

Можете да използвате CSV ids резултат като:

SELECT *
FROM tblreport
WHERE FIND_IN_SET(ID,(SELECT GROUP_CONCAT(lv SEPARATOR ',') FROM (
                     SELECT @pv:=(SELECT GROUP_CONCAT(ID SEPARATOR ',') 
                     FROM tblreport WHERE ParentID IN (@pv)) AS lv FROM tblreport
                     JOIN (SELECT @pv:=1)tmp
                       WHERE ParentID IN (@pv)) a));

DBFiddle Demo

Изход:

ID  Name    ParentID
2   2nd     1
3   3rd     1
4   4th     2

РЕДАКТИРАНЕ:

Ако имате нужда и от оригинален ред, можете да използвате UNION ALL :

SET @var = 1;

SELECT *
FROM tblreport
WHERE FIND_IN_SET(ID,(SELECT GROUP_CONCAT(lv SEPARATOR ',') FROM (
                     SELECT @pv:=(SELECT GROUP_CONCAT(ID SEPARATOR ',') 
                     FROM tblreport WHERE ParentID IN (@pv)) AS lv FROM tblreport
                     JOIN (SELECT @pv:[email protected])tmp
                       WHERE ParentID IN (@pv)) a))

UNION ALL
SELECT *
FROM tblReport
WHERE ID = @var
ORDER BY ID;

DBFiddle Demo2



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите целочислен изход от SQL заявка

  2. swi prolog mysql + web

  3. Django + MySQL на Elastic Beanstalk - Грешка при запитване към MySQL

  4. Постигане на MySQL Failover &Failback на Google Cloud Platform (GCP)

  5. MYSQL Update Trigger получава актуализиран идентификатор на ред