Имя: Пароль:
IT
Админ
Как в MySQL создать временные таблицы?
,
0 DirecTwiX
 
23.04.15
10:13
Просьба помочь с запросом.. Сел писать сайт, конструктора запросов не нашёл) Просьба помочь вынести два одинаковых подзапроса во временную таблицу. Текущий запрос:

SELECT
            e.*,
            tm1.team_name as team1_name,
            tm1.team_icon as team1_icon,
            tm2.team_name as team2_name,
            tm2.team_icon as team2_icon,
            IFNULL(tmem1.mems, \'\') as team1_members,
            IFNULL(tmem2.mems, \'\') as team2_members
        FROM `events` as e
            left join `teams` as tm1 on e.team1_id = tm1.id
            left join `teams` as tm2 on e.team2_id = tm2.id
            left join (    SELECT
                            team_id,
                            GROUP_CONCAT(CONCAT(\'<li class="person-name">\', `first_name`, \' "\', `nickname`, \'" \', `last_name`,\'</li>\') SEPARATOR \'\') as mems
                        FROM `members`
                        GROUP BY team_id) as tmem1 on e.team1_id = tmem1.team_id
            left join (    SELECT
                            team_id,
                            GROUP_CONCAT(CONCAT(\'<li class="person-name">\', `first_name`, \' "\', `nickname`, \'" \', `last_name`,\'</li>\') SEPARATOR \'\') as mems
                        FROM `members`
                        GROUP BY team_id) as tmem2 on e.team2_id = tmem2.team_id
        WHERE '.$whereC.'
        GROUP BY id, team1_id, team2_id
        ORDER BY time ASC
1 DirecTwiX
 
23.04.15
10:18
Т.е. в 1Ске я бы сделал так:

SELECT DISTINCT
  e.team1_id as team_id
ПОМЕСТИТЬ TeamsID
FROM events e
WHERE $whereC

ОБЪЕДИНИТЬ

SELECT DISTINCT
  e.team2_id
FROM events e
WHERE $whereC;

SELECT
  team_id,
  first_name,
  nickname,
  last_name
ПОМЕСТИТЬ mems
FROM members
WHERE team_id В (SELECT A.team_id FROM TeamsID);

SELECT
...
JOIN Mems
2 DirecTwiX
 
23.04.15
10:52
Апну разок
3 User_Agronom
 
23.04.15
10:55
4 DirecTwiX
 
23.04.15
11:04
(3) Хотелось живого общения)
Спасибо)
5 MadHead
 
23.04.15
11:08
В чистом sql создание временных таблиц на много менее оправдано чем в 1с. Так что не нужно куда не попадя их тулить. С высокой вероятностью все само оптимизируется
6 Jaap Vduul
 
23.04.15
11:14
+(5)Мускульный оптимизатор зачастую сам создаёт временные таблицы, если посчитает, что они необходимы.
7 DirecTwiX
 
23.04.15
11:46
Это хорошо) Спасибо за советы)
Программист всегда исправляет последнюю ошибку.