- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть запрос
t2.name as city,t2.morpher as sectMorf,t2.morpher2 as sectMorf2
FROM `x_items` as t1
INNER JOIN x_sections as t2 on t2.id = t1.section_id
INNER JOIN x_categories as t3 on t3.id = t1.category_id
LEFT JOIN x_spec as t4 on t4.cat_id = t3.id
WHERE t1.fullname NOT LIKE '%.%'
AND t4.cat_id = 99
AND t3.id != 25
AND t3.id != 65
AND t3.id != 98
AND t3.id != 126
AND t3.id != 274
AND t3.id != 275
AND t3.id != 253
AND t3.id != 242
AND t3.id != 271
AND t3.id != 152
AND t1.comm = 0 limit 1
В блоке t4.name as nazvanie возможно как отсутствие вариантов (поэтому LEFT JOIN) так и более 1.
Как мне в одно поле в результате поместить все варианты если их несколько
пробовал добавлять group_concat( t4.name separator ',' ) но в результате в этом окне идете через запятую только 1-ое совпадение.
AND t3.id != 25
AND t3.id != 65
AND t3.id != 98
AND t3.id != 126
AND t3.id != 274
AND t3.id != 275
AND t3.id != 253
AND t3.id != 242
AND t3.id != 271
AND t3.id != 152
Так не лаконичнее?
но в результате в этом окне идете через запятую только 1-ое совпадение.
Т.е. запрос без group_concat выдаёт много строк, а с ним - одну.. с одним t4.name?
group_concat( t4.name separator ',' )
эта функция согласно мануалу, работает для случаев, когда вы сделали Group By по другому полю.
без group_concat выдает одну строку "Витя", а с group_concat - "Витя, Витя, Витя..." (а должно быть "Витя, Маша, Петя...)
Получается одним запросом никак?
Dram, если я правильно понимаю, для group_concat Вам нужно использовать group by в запросе, но нужно понять по какому полю группировать. Так как нет примера данных, а также примера того, что нужно получить в итоге (в табличном виде), а также что получается (в табличном виде) - подсказать что-то конкретное трудно.
Ваш текущий запрос точно не возвращает "Витя, Витя, Витя", он возвращает ещё и другие поля. А так как нет примеров, о которых я в предыдущем абзаце описал, то можно только гадать что нужно исправить.
Условно: 1) запрос выводит такой результат (копия из консоли или из MySQlAdmin), 2) Хочу получить вот такой - аналогичный пример вывод из таблице.
p.s. На время примеров уберите Limit 1 - он на этом этапе только мешает.
p.p.s Если предварительный диагноз-рекомендация, то (как пример):
Вам нужно найти поле для которое повторяются значения и для которого имена будут собиратся в кучу. То есть, здесь вот общая фамилия Иванов. Если сделать Group By t1.fullname и затем group_concat( t4.name separator ',' ), то получим примерно такое:
Витя, Вова, Саша Иванов
Вася Петров
Женя Сидоров
Это пример, нужны конкретные примеры данных для конкретной рекомендации.