Пыха всегда с тобой

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 23 Май, 2012, 12:17:47

Страниц: [1]
Печать
Автор Тема: Вложеный запрос и Груп_Конкат  (Прочитано 983 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Josh    ↓ 
24 Ноябрь, 2008, 01:55:11
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

Народ может кто-то стыкался: надо чтото вроде вот такого:
Text
SELECT table1.*
         , GROUP_CONCAT( (SELECT table2.name FROM table2 WHERE table2.table1_id=table1.id) SEPARATOR '; ' ) as all_names
FROM table1 join,join,where,limit,order

Конешно всё больше запущено, но суть остаёться та же, вобщем в GROUP_CONCAT надо пхнуть вложеный запрос
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
Josh    ↓ 
24 Ноябрь, 2008, 01:59:42 , спустя 4 минуты 31 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

Смысл ещё в том, чтобы не джойнить table2, этим просто пытаюсь подоптимизировать запрос. Это вообще возможно сделать?
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
phpdude    ↓ 
24 Ноябрь, 2008, 02:11:47 , спустя 12 минут 5 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66

на каждую строку будет вызываться подзапрос - хуевый метод
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Josh    ↓ 
24 Ноябрь, 2008, 02:56:35 , спустя 44 минуты 48 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05

Разобрался.
Text
SELECT table1.*
         , ( SELECT GROUP_CONCAT(table2.name)as some_name FROM table2 WHERE table2.table1_id=table1.id) as all_names
FROM table1 join,join,where,limit,order
Вобщем примерно чтото такого - заработало
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
Josh    ↓ 
24 Ноябрь, 2008, 02:57:53 , спустя 1 минуту 18 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05


на каждую строку будет вызываться подзапрос - хуевый метод
Вторая тамличка не большая, поэтому мухель её быстренько загонит в память, но а если не так то как? тогда получиться нало LEFT JOIN джелать а потом GROUP - не похоже на выход
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
CTAPbIu_MABP    ↓ 
24 Ноябрь, 2008, 02:57:58 , спустя 5 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

Josh, быстрее?
Записан

java.lang.OutOfMemoryError
Josh    ↓ 
24 Ноябрь, 2008, 04:23:32 , спустя 1 час 25 минут 34 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05


Josh, быстрее?
Не поверишь да, чем LEFT JOIN ом - раз в 5 шустее забегал
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
CTAPbIu_MABP    ↓ 
24 Ноябрь, 2008, 04:31:28 , спустя 7 минут 56 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

кулл
Записан

java.lang.OutOfMemoryError
Josh    ↓ 
24 Ноябрь, 2008, 04:53:31 , спустя 22 минуты 3 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: нинзя

Карма: 48
Сообщений: 1574
Сила слова: 3.05


кулл
Ну сам представь
 
TABLE 1
id | name
---------
1  | name1
2  | name2
3  | name3
4  | name4
 
TABLE 2
table1_id | table3_id
--------------------
1           | 1
1           | 2
1           | 4
2           | 2
3           | 3
3           | 1
3           | 4
 
TABLE 3
id | name
---------
1  | cat1
2  | cat2
3  | cat3
4  | cat4
 
В результате мне нужно получить
 
"name1" , "cat1 , cat2 , cat4"
"name2" , "cat2"
"name3" , "cat3 , cat1 , cat4"
"name4" , ""
 
Просто вариантов я не вижу: это всё заджойнить надо причём OUTEROM, плюс ко всему задистинктить, потому как это не один гемор!!! ещё есть оутеры, мне сильно много даты вернёться. Так что в этом случае, так как показала сегодняшняя практика я прав
Записан

Иногда мне кажется, что все ебанулись. В остальное же время я в этом уверен.
Страниц: [1]
Печать
 

Перейти в: