|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.03.2017, 12:22 | #1 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
Left join и group by
Всем привет!
Есть такой запрос Код:
Значит суть в следующем. Есть таблица филиалов, 30К записей. Каждый филиал может входить в несколько категорий. Для этого была создана таблица agcms_filial_p, где прописываются связи между CATEGORY_ID И ID филиала. Когда филиал входит в несколько категорий, то без GROUP_BY выводятся дубликаты по кол-во вхождений в категории. Что в этом запросе не так, и как его можно оптимизировать? Может наладить какие-то связи между таблицами? На данный момент никаких связей нет, и я мало что в них понимаю. Подскажите, пожалуйста, куда копать
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
05.03.2017, 13:25 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
p.MATERIAL_ID в списке SELECT не нужен, масло масляное, он и так там есть в виде i.ID. А зачем вообще связка с agcms_filial_p? Что бы показать одну из категорий, при чем случайным образом, в которую входит филиал? Теперь - индекс по STATUS есть? Почему ORDER BY нет коль есть LIMIT? На какую упорядоченность он нацелен?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
05.03.2017, 13:28 | #3 | |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
Цитата:
Код:
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
|
05.03.2017, 13:35 | #4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
И вообще LEFT GOIN достаточно медленные соединения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 05.03.2017 в 13:42. |
|
05.03.2017, 13:47 | #5 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
Без GROUP BY в выдачи присутствуют дублирующиеся записи, если запись входит в несколько категорий. На это влияет
Код:
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
05.03.2017, 13:51 | #6 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LEFT JOIN | januarist | SQL, базы данных | 6 | 23.07.2015 12:15 |
LEFT JOIN | kuba1981 | SQL, базы данных | 3 | 21.11.2013 08:00 |
left join | kilogram | SQL, базы данных | 5 | 14.07.2012 05:13 |
запрос с left join | KatrinSecret | SQL, базы данных | 2 | 18.01.2012 22:31 |
LEFT JOIN | acidcool | SQL, базы данных | 12 | 20.08.2009 19:23 |