У меня есть несколько таблиц, из которых я пытаюсь SELECT
получить достаточно много данных. У меня есть таблица с именем xguilds_guilds
, которая является основной таблицей, из которой я выбираю данные. У меня также есть таблица под названием xguilds_players
. Все игроки подключены к записи в xguilds_guilds
. То же самое касается xguilds_permissions
, где каждое разрешение связано с записью xguilds_guilds
.
Мой запрос на выборку выглядит следующим образом:
SELECT `xguilds_guilds`.*,
GROUP_CONCAT(`xguilds_permissions`.`permission`) AS `permissions`,
GROUP_CONCAT(`xguilds_permissions`.`rank`) AS `ranks`,
GROUP_CONCAT(`xguilds_players`.`uuid`) AS `players`,
GROUP_CONCAT(`xguilds_players`.`rank`) AS `plranks`
FROM `xguilds_guilds`
LEFT JOIN `xguilds_permissions` ON `xguilds_guilds`.`id` = `xguilds_permissions`.`guild`
LEFT JOIN `xguilds_players` ON `xguilds_guilds`.`id` = `xguilds_players`.`guild`
WHERE `admin` = 0
GROUP BY `xguilds_guilds`.`id`;
Однако по какой-то причине записи из объединенные таблицы не выбираются правильно. Например, у меня есть гильдия с идентификатором 6, где я ожидаю выбрать следующее для столбца players
:
030adc90-47a4-48ac-b713-e606ddfd4cb9,
b9d9b3de-8e38-4277-999c-d95945658537,
f273e51a-a9b8-44af-a019-897e88509ae5
Тем не менее, он фактически выбирает следующую строку, в которой uuids постоянно находятся повторил и отрезал в конце:
030adc90-47a4-48ac-b713-e606ddfd4cb9,
b9d9b3de-8e38-4277-999c-d95945658537,
f273e51a-a9b8-44af-a019-897e88509ae5,
030adc90-47a4-48ac-b713-e606ddfd4cb9,
b9d9b3de-8e38-4277-999c-d95945658537,
f273e51a-a9b8-44af-a019-897e88509ae5,
030adc90-47a4-48ac-b713-e606ddfd4cb9,
b9d9b3de-8e38-4277-999c-d95945658537,
f273e51a-a9b8-44af-a019-897e88509ae5,
030adc90-47a4-48ac-b713-e606ddfd4cb9,
b9d9b3de-8e38-4277-999c-d95945658537,
f273e51a-a9b8-44af-a019-897e88509ae5,
030adc90-47a4-48ac-b713-e606ddfd4cb9,
b9d9b3de-8e38-4277-999c-d95945658537,
f273e51a-a9b8-44af-a019-897e88509ae5,
030adc90-47a4-48ac-b713-e606ddfd4cb9,
b9d9b3de-8e38-4277-999c-d95945658537,
f273e51a-a9b8-44af-a019-897e88509ae5,
030adc90-47a4-48ac-b713-e606ddfd4cb9,
b9d9b3de-8e38-4277-999c-d95945658537,
f273e51a-a9b8-44af-a019-897e88509ae5,
030adc90-47a4-48ac-b713-e606ddfd4cb9,
b9d9b3de-8e38-4277-999c-d95945658537,
f273e51a-a9b8-44af-a019-897e88509ae5,
030adc90-47a4-48ac-b713-e606ddfd4cb9,
b9d9b3de-8e38-4277-999c-d95945658537,
f273e51a-a9b8-44af-a019-897e88509ae5,
030adc90-47a4-48ac-b713-e
Понятия не имею, что вызывает это странное поведение. У меня нет большого опыта в соединении таблиц, что может быть проблемой в этой ситуации. Я также пробовал следующий запрос, и он работал правильно:
SELECT `xguilds_guilds`.*,
GROUP_CONCAT(`xguilds_players`.`uuid`) AS `players`
FROM `xguilds_guilds`
LEFT JOIN `xguilds_players` ON `xguilds_guilds`.`id` = `xguilds_players`.`guild`
WHERE `guild` = 6
GROUP BY `xguilds_guilds`.`id`;
Любая помощь приветствуется. Большое спасибо.