Консультируйся, результат которого включил поле, которое было бы результатом другой консультации в mysql

У меня есть таблица людей, у которой есть между другими полями следующие:

+----------------------------+
|persona_id | persona_nombre |
+-----------+----------------+
| 1         | persona 1      |
| 2         | persona 2      |
+-----------+----------------+

И у меня есть таблица списков жителей со следующими полями:

+--------------------------+
|persona_nombre | padrones |
+---------------+----------+
| persona 1     | 1,2      |
| persona 2     | 1        |
+--------------------------+

Есть какой-то способ делать консультацию, которая возвращала бы следующее:

+-----------------------+
|persona_id | padron_id |
+-----------+-----------+
| 1         | 1         |
| 1         | 2         |
| 2         | 1         |
+-----------+-----------+
2
задан 04.01.2017, 20:01
0 ответов

Ты можешь делать это следующей формой:

 SELECT A.persona_nombre, (
   SELECT GROUP_CONCAT(B.padron_id SEPARATOR ',')
   FROM padrones AS B
   WHERE B.persona_id = A.persona_id
   GROUP BY B.persona_id
 ) AS padrones
 FROM personas AS A

Или я схватил также:

 SELECT A.persona_nombre, 
   GROUP_CONCAT(B.padron_id SEPARATOR ',') AS padrones
 FROM personas AS A
 INNER JOIN padrones AS B 
   ON B.persona_id = A.persona_id
 GROUP BY A.persona_id
2
ответ дан 03.12.2019, 17:52
  • 1
    @Pillo, Стоит упоминать, чем во второй opció n, если человек не принадлежит padró n не aparecerá. Если ты хотел, что, если он появился, просто deberí схвати использовать LEFT JOIN. –  04.01.2017, 20:01
  • 2
    Большое спасибо @MarcosGallardo оба функционировали в perfecció n –  04.01.2017, 20:02