|
|
|
| Ситуация следующая..., скрипт динамически собирает запрос в базу в зависимости от настроек...
SELECT books.*, users.u_fio
FROM books
LEFT JOIN users ON (users.u_id = books.fixed) // users.u_id IN (books.fixed))
WHERE books.cat = 0
GROUP BY books.b_id
ORDER BY books.b_id desc
LIMIT 0,25
|
Загвоздка вот в чем, поле books.fixed - строка которая может содержать ИД юзеров от 1-го до N-го - кол-ва, через запятую, и выбрать users.u_fio нужно для каждого, не прибегая к помощи дополнительных запросов в бд. Интересно есть ли возможность задать список значений в условии объединения при котором будут выбраны все соотв. поля?=)
P.S. Я понимаю, что в некоторых случаях дополнительный мелкий запрос - решает задачу, но т.к. мы выводим таблицу в 25или50строк, то добавлять в цикл запросы или использовать громкие подзапросы мягко говоря не есть решением:) | |
|
|
|
|
автор: ..... (08.08.2010 в 01:46) |
|
|
для: Emm
(08.08.2010 в 00:43)
| | >(users.u_id = books.fixed) // users.u_id IN (books.fixed))
судя по описанию больше похоже на FIND_IN_SET(users.u_id, books.fixed)
... если только с
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
| можно все данные разложить по результатам одного запроса + подзапросов ,) или никаких GROUP BY books.b_id | |
|
|
|
|
|
|
|
для: .....
(08.08.2010 в 01:46)
| | Да, это мне помогло, только не было времени поблагодарить, спасибо за помощь уважаемый незнакомец:) | |
|
|
|
|
|
|
|
для: Emm
(19.08.2010 в 20:35)
| | Почему же незнакомец? Пять точек, и если по аналогии, то значит коньяк ) | |
|
|
|