Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ответ с одной строкой 
V
    Опции темы
Zakir_Kadiri
  Дата 22.9.2007, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.6.2007
Где: Baku

Репутация: нет
Всего: нет



Код

user_table
id    qid    uid
61    4    18
60    4    12
64    4    23


vote_table
id    question
2    weqwe
3    New vote
4    qqqqqq


Ответ запроса
id    question    sef    type    sef    uid
4    qqqqqq    asdasd    radio    asdasd    18
4    qqqqqq    asdasd    radio    asdasd    12
4    qqqqqq    asdasd    radio    asdasd    23


И мой запрос...
Код

SELECT v.id, v.question, u.uid FROM vote_table v LEFT JOIN user_table u ON v.id=u.qid WHERE status='active' AND qid='4' GROUP BY u.uid ORDER BY id DESC


Хочу что вроде такого ответа
Код

id    question    sef    type    sef    uid
4    qqqqqq    asdasd    radio    asdasd    (18, 12, 23)


PM   Вверх
sTa1kEr
Дата 22.9.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 9
Всего: 146



Код

SELECT v.id, v.question, CONCAT('(', GROUP_CONCAT(u.uid SEPARATOR ', '), ')') AS uid 
FROM vote_table v
LEFT JOIN user_table u ON v.id=u.qid 
WHERE status='active' AND u.qid='4' 
GROUP BY v.id, v.question
ORDER BY v.id DESC

PM MAIL   Вверх
Zakir_Kadiri
  Дата 22.9.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.6.2007
Где: Baku

Репутация: нет
Всего: нет



 smile  smile Большое спасибо вычучил от лишних запросов
PM   Вверх
Zakir_Kadiri
Дата 22.9.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.6.2007
Где: Baku

Репутация: нет
Всего: нет



А это не нагружает сервер? Хочу сказать что по вашему этот запрос лучше чем делат запрос дважды?
Если не трудно подробно опишите или дайте ссылку
PM   Вверх
Zakir_Kadiri
  Дата 22.9.2007, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.6.2007
Где: Baku

Репутация: нет
Всего: нет



Код

SELECT * FROM table1 WHERE tid=23

table1

id    tid    lang    ref_field    value
1    23    1    title        sometitle
2    23    1    short        someshort
3    23    1    full        somefull 



А можна ли...
Код

id    tid    lang    title            short            full
1    23    1    sometitle    someshort    somefull 


PM   Вверх
ewolf
Дата 23.9.2007, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 2
Всего: 18



Можно конечно так

Код

SELECT t1.id, t1.tid, t1.lang, t1.value AS title, t2.value AS short, t3.value AS full

FROM table AS t1, table AS t2, table AS t3

WHERE
t1.ref_field = 'title'
AND
t2.tid = t1.tid AND t2.lang=t1.lang AND t2.ref_field = 'short'
AND
t3.tid = t1.tid AND t3.lang=t1.lang AND t3.ref_field = 'full'


но по-моему у тебя структура таблицы неправильная
PM MAIL ICQ   Вверх
Zakir_Kadiri
Дата 23.9.2007, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.6.2007
Где: Baku

Репутация: нет
Всего: нет



Цитата(ewolf @  23.9.2007,  02:20 Найти цитируемый пост)
но по-моему у тебя структура таблицы неправильная 

Эту базу не я создал, а кто то другой тепер мне говорят что я дольжен починит сайт и добавит некоторые функциональности. Ну и потому я даю такие "нехорошие вопросы"

...Зы и спасибо за запрос. Вы мне очен помогли. Может я тоже могу чем то помоч вам? Если да, напишите мне ПМ

PM   Вверх
SelenIT
Дата 23.9.2007, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



Имхо, структура как раз хорошая, для отношения N:1 самое то что надо. Но джойнить таблицу саму на себя n раз только ради представления выборки в одну строку - имхо, нерационально. От скрипта не убудет, если получать данные простым запросом "в столбик" и строить нужный массив характеристик циклом - а базе с простыми запросами все-таки полегче...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Zakir_Kadiri
Дата 25.9.2007, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.6.2007
Где: Baku

Репутация: нет
Всего: нет



Благодарен всем. Задача пыполнено smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.