MySQL: производительность, запрашивающая несколько столбцов с одной строкой - PullRequest
0 голосов
/ 06 декабря 2011

Мои таблицы упростили что-то вроде этого ..

Table Categories
cat_id   | cat_name
-------------------
1        | Baseball
2        | Hockey
3        | Football

Table Day
day_id   | day_name
--------------------
1        | Friday
2        | Saturday
3        | Sunday

Table Day_Categories
day_id    | cat_id
-------------------
1         | 1
1         | 2
2         | 2
2         | 3
3         | 1
3         | 2
3         | 3

И я хочу, чтобы мои результирующие данные выглядели примерно так ...

"Friday","Baseball, Hockey"
"Saturday","Hockey, Football"
"Sunday", "Baseball, Hockey, Football"

В этом нет необходимостибыть в трехстрочном формате.Мне просто нужны одни и те же результирующие данные.

С точки зрения производительности с большим количеством данных, что, вероятно, является лучшим способом для достижения этого результата?

1 Ответ

3 голосов
/ 06 декабря 2011

Пожалуйста, попробуйте это

SELECT day_name, GROUP_CONCAT ( cat_name ) as categories 
FROM Days as d
LEFT JOIN Days_Categories as dnc ON d.day_id = dnc.day_id 
LEFT JOIN Categories as c ON c.cat_id = dnc.cat_id 
GROUP BY ( dnc.day_id)
...