#php #mysql #sql #join
#php #mysql #sql #Присоединиться
Вопрос:
У меня есть 3 таблицы в MySQL.
excel — это таблица, в которой я храню название сайта, а side-id analys_result — это таблица, в которой я храню ключевые слова сайтов, в ней есть ключевое слово, идентификатор категории, идентификатор сайта. категории — содержат имя и идентификатор категории
Вот скриншоты таблиц и то, что мне нужно получить:
Таблица Excel
таблица результатов анализа
Результат
Комментарии:
1. вы не опубликовали
categories
таблицу. вероятно, проще выполнить форматирование в php2. В чем вопрос?
3. Я добавляю таблицу категорий, мне нужно выбрать данные в формате последнего изображения, я пробую объединения, группирование по, вложенные запросы, но это не помогло
Ответ №1:
Используя только sql, лучшее, что вы можете получить, это:
select e.id, e.url, c.CategoryName, a.Keywords, count=sum(a.count)
from excel e, categories c, analys_results a
where e.id = a.websiteid
and a.categoryid = c.id
group by e.id, e.url, c.CategoryName, a.keywords
order by e.id, e.url, c.CategoryName, a.keywords
Это даст вам правильные данные, но поля группировки (id, url, categoryname) будут отображаться в каждой строке результирующего набора (не ОДИН РАЗ для каждой группы), и выполнение запроса таким образом с использованием сложного SQL НЕ рекомендуется. Пусть база данных предоставит вам данные, и пусть пользовательский интерфейс или инструмент отчетности, который вы используете, определяют, как вы хотите отобразить результаты.