Я новичок, но сообщество было моим лучшим ресурсом в моих проектах. Я тупой/манекен Mysql «хочу быть», и я нахожусь в центре проекта, который заставляет меня сойти с ума.как объединить несколько строк с тем же id mysql
У меня есть таблица из приятеля плагинов wordpress, которая пара meta_key и meta_values, чтобы создать нечто похожее на таксономию. Моя обязанность - использовать эти парные значения для реализации расширенного группового поиска. Вот исходная таблица:
--------------------------------------------
id | group_id | meta_key | meta_value
--------------------------------------------
1 | 1 | time-zone | Kwajalein
2 | 1 | playstyle | hardcore
3 | 1 | recruiting-status | Open
4 | 1 | ilvl | 115
5 | 1 | main-raid | Final Coil of Bahamut
6 | 1 | voicechat | fc.teamspeak3.com
и т.д ....
Используя представление мне удалось создать более удобный для поиска стол для начинающих:
gid| time-zone| playstyle | main-raid
--------------------------------------------
1 | | |
1 |Kwajalein | |
1 | | hardcore |
1 | | |
1 | | | Final Coil of Bahamut
1 | | |
А вот код вида:
SELECT distinct
group_id AS 'gid',
IF(meta_key='recruiting-status',meta_value,'') AS 'Recruitment',
IF(meta_key='server',meta_value,'') AS 'server',
IF(meta_key='time-zone',meta_value,'') AS 'tzone',
IF(meta_key='main-raid',meta_value,'') AS 'raid',
IF(meta_key='raid-days',meta_value,'') AS 'days',
IF(meta_key='playstyle',meta_value,'') AS 'playstyle',
IF(meta_key='raid-progression',meta_value,'') AS 'progression',
IF(meta_key='raid-time',meta_value,'') AS 'time',
IF(meta_key='tanker-spot',meta_value,'') AS 'tank',
IF(meta_key='healer-spot',meta_value,'') AS 'healer',
IF(meta_key='melee-dps-spot',meta_value,'') AS 'melee',
IF(meta_key='ranged-dps-spot',meta_value,'') AS 'ranged',
IF(meta_key='magic-dps-spot',meta_value,'') AS 'magic',
IF(meta_key='ilvl',meta_value,'') AS 'ilvl',
IF(meta_key='voicechat',meta_value,'') AS 'voice',
IF(meta_key='voicechatpass',meta_value,'') AS 'voicep',
FROM wpstatic_bp_groups_groupmeta
Дело в том, что я необходимо объединить этот результат (вид), так что все group_id = 1 или 2, или 3, и т.д. стоять в одном ряду, например:
gid| time-zone| playstyle | main-raid
--------------------------------------------
1 |Kwajalein | hardcore | Final Coil of Bahamut
2 |SaoPaulo | regular | Second Coil of Bahamut
т.д.
Может ли кто-нибудь мне помочь?
Это похоже на это http://stackoverflow.com/questions/16568228/how-to-transpose-mysql-table-rows-into-columns, но я думаю, что вы можете добавить в конце вашего взгляда «GROUP BY gid» может быть? –
Я пробовал и получил строку без данных, кроме столбца gid –