Получить записи из сводки, соответствующие ее владельцу - PullRequest
2 голосов
/ 19 апреля 2019

с использованием последней версии mariaDB, у меня есть следующая структура таблицы (например, обрезанная)

Table A
+--------+------+
| id     |name  |
+--------+------+
| 1      | Bob  |
| 2      | Jane |
+--------+------+

Table B
+--------+------+
| id     |city  |
+--------+------+
|      1 | abc  |
|      2 | def  |
|      3 | ghi  |
|      4 | jkl  |
+--------+------+

Pivot Table
+-----------+-----------+
| tableA_id | tableB_id |
+-----------+-----------+
|      1    |   1       |
|      1    |   3       |
|      2    |   3       |
|      2    |   4       |
+-----------+-----------+

есть ли способ заставить его выйти из этого вывода или это нужно сделать php?

+--------+------+-------+
| id     |name  | city1 |
+--------+------+-------+
| 1      | Bob  |  abc  |
| 1      | Bob  |  ghi  |
| 2      | Jane |  ghi  |
| 2      | Jane |  jkl  |
+--------+------+-------+

к этому:

+--------+------+----------+
| id     |name  | cities   |
+--------+------+----------+
| 1      | Bob  |  abc ghi |
| 2      | Jane |  ghi jkl |
+--------+------+----------+

, используя текущий запрос ниже

SELECT c.id, c.city1, p.id pid, p.first_name FROM city c
INNER JOIN pivot_tablet piv ON c.id = piv.city_id
INNER JOIN person p ON p.id = piv.person_id

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

использование group_concat()

SELECT p.id,p.first_name,group_concat(c.city1 SEPARATOR ' ') as cities, 
FROM pivot_tablet piv inner join city ON c.id = piv.city_id
INNER JOIN person p ON p.id = piv.person_id
group by p.id, p.first_name
0 голосов
/ 19 апреля 2019

создать таблицу #temp (row1 int, row2 int, row3 int, row4 varchar (20), row5 int, row6 varchar (20)) вставить в #temp select * from table3 присоединиться к Table1 на Table1.id = Table3.idTable1 объединить table2 на table2.id = table3.idtable2

выберите строку 1, строку 4, row6 = STUFF (( ВЫБЕРИТЕ ',' + t2.row6 ОТ #temp t2 ГДЕ t1.row1 = t2.row1 ДЛЯ ПУТИ XML ('') ), 1, 2, '') FROM #temp t1 GROUP BY t1.row1, t1.row4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...