- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
То, что вы хотите сделать называется Pivot table - развернуть строки в столбцы.
Гуглите pivot mysql
hrach, похоже то что нужно, спс!
пробуйте (под рукой mysql нет, пример для ms sql)
hrach, не вижу в вашем примере вторую таблицу
а какая разница сколько там таблиц?:))
hrach, Спасибо, оч интересная конструкция, буду изучать!
hrach, Спасибо, оч интересная конструкция, буду изучать!
вложенная таблица вернет все те же 4 строки, только в некоторых столбцах будет NULL.
Для этого выбираем из полученного агрегатом max.
А так чтобы без макс? Мне ведь все нужны, чтобы циклом по ним пройтись. Чтобы с группировкой по id и без нулл
вложенная таблица вернет все те же 4 строки, только в некоторых столбцах будет NULL.
Для этого выбираем из полученного агрегатом max.
Так сделать группировку только t1.id и не нужен вложенный запрос будет возвращать по одной строке на один id. Я так понимаю, у него же на один id по одному оответствующему тел, сайту, имени
---------- Добавлено 12.11.2019 в 22:40 ----------
А так чтобы без макс? Мне ведь все нужны, чтобы циклом по ним пройтись. Чтобы с группировкой по id и без нулл
Мне, кажется, вот так достаточно
SELECT t1.id AS id,
CASE WHEN t2.type_id=7 THEN t2.text END AS tel,
CASE WHEN t2.type_id=2 THEN t2.text END AS dir,
CASE WHEN t2.type_id=6 THEN t2.text END AS site,
CASE WHEN t2.type_id=1 THEN t2.text END AS email
FROM firm_items as t1
INNER JOIN firm_items_fields_value as t2 on t1.id = t2.item_id
WHERE t1.category_id = 45
GROUP BY t1.id
Попробуй так:
SELECT t1.id,
MAX(IF(t2.type_id=7,t2.text,0)) AS tel,
MAX(IF(t2.type_id=2,t2.text,0)) AS dir
FROM firm_items as t1
INNER JOIN firm_items_fields_value as t2 on t1.id = t2.item_id
WHERE t1.category_id = 45
GROUP BY t1.id