| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Оптимизация запроса |
| Автор: Ninazu 31.7.2013, 20:23 | ||||
Подскажите как более красиво и правильно можно написать этот запрос? Требуемой логики добился, но кажется мне, что можно как-то красивей. (Суть запроса. подставить в таблицу users вместо id, значения из states и cities и отфильтровать по всем столбцам условие) Для эксперимента пользуюсь этим
|
| Автор: Zloxa 1.8.2013, 12:29 | ||
Такое оформление мне кажется куда более красивым. О том как "правильно" знаете только вы. Но, исходя из того, что вы скрываемой вами "требуемой логики" уже добились, вопрос звучит странно. |
| Автор: Ninazu 1.8.2013, 18:51 |
| Насчет правильности логики это я поспешил)) LIKE находил до джоинов, заменил на HAVING норм стало) Больше интересовала чистота кода. А капсом я просто привык отделять операторы от параметров. Насчёт CamelCase в FirstName и LastName согласен, лучше без него. |
| Автор: Zloxa 1.8.2013, 19:49 |
| Ninazu, вы не поняли о чем я. Я больше о том, что внешний аспект это дело вкуса. А для того чтобы определить, что подозрения в том, что ваш запрос возвращает не то, что вы хотели запрашивать, нужно как минимум знать что же именно вы хотите вернуть и для каких целей. А уж если про оптимизацию говорить, так там вобще много всего знать надо, что осталось за рамками вашего пояснения. В общем -http://segfault.kiev.ua/smart-questions-ru.html#goal |
| Автор: Ninazu 1.8.2013, 20:07 |
| user - хранит имя и фамилию, а также ключи к таблицам cities and states cities - хранит названия городов states - хранит названия штатов Вывести таблицу с текстовой информацией в формате Имя, Фамилия, Город, Штат |
| Автор: Zloxa 1.8.2013, 21:37 |
Для решения этой задачи ни where ни like ни уж тем более having не нужны |
| Автор: Ninazu 1.8.2013, 21:39 |
| Для решения этой задачи ни where ни like ни уж тем более having не нужны Можно взглянуть на решение без них? |
| Автор: Zloxa 1.8.2013, 23:35 |
все то же самое тоолько без в верев и хавингов. В той постановке задачи, которую вы озвучили, фильтрации не предполагается. Добавлено через 1 минуту и 17 секунд Впрочем, пофиг. На тему забиваю. Толку тут не будет. Вытягивать клещами "А что ты вобще хочешь сдеалть", уже достало Добавлено через 9 минут и 24 секунды Лана, предприму еще попытку и спрошу прямо 1) Что вас не устраивает в приведенном вам запросе 2) Почему условие отбора такое странное? Что общего у людей с фамилией на букву "М" и людей, проживающих в городе на букву "М", чтобы объединять их в один набор. Это дейсвтительно странно. Так же странно как попросить жену "купи мне носки, ну или же кефир" |
| Автор: igorold 8.8.2013, 07:57 | ||||
А почему так:
? Может так правильней будет:
? Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51f948336ccc19fc12000002#findElement_E7045_5203253a6ccc19b6430000d6_0 |
| Автор: Zloxa 8.8.2013, 09:36 |
эквивалентно же )) Немного не поансишному, конечно, но вполне себе на диалекте. У маси, я так понимаю, inner join без on кляузы являет суть cross join. Так же как ты написал не правильнее, просто лишь красивее, читабельнее. Оптимизатор, если не запутается, должен бы привести к одному плану. |