| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Составление SQL-запросов > помогите разобраться с LEFT JOIN |
| Автор: Gugle 30.4.2008, 11:35 | ||||
| Доброго времени суток! Помогите разобраться с конструкцией LEFT JOIN в MySQL запросах. Опишу сначало задание. 1.Из таблиц notice, geo и adm_info показать только те записи в которых имеются совпадения по ключам notice.ntc_id=geo.ntc_id и notice.adm=adm_info.adm. 2.Но при этом не показывать те ntc_id для которых не выполняется условие в таблице freq.max>20 и freq.min<10. Связь notice.ntc_id осуществляется след образом: Полученные значения notice.ntc_id сравниваем со значениями s_beam.ntc_id и достаем достаем s_beam.beam_name и s_beam.emi_rcp. Полученные 3 значения сравниваем со след таблицей grp.ntc_id=ntc_id AND grp.s_beam=s_beam AND grp.emi_rcp и достаем следующее поле - grp.grp_id. Теперь полученные 4 значения надо сравнить с таблицей freq и вытащить все значения freq.min и freq.max, а потом сравнить их с диаппазоном от 10 до 20. Я решаю данную задачу с помощью "временных" таблиц, но вроде как с помощью LEFT JOIN она должна решаться быстрее, а вот как сделать этот запрос не могу понять. Вот мой запрос:
Теперь сами таблици:
По первому пункту должно вывести: 1 R 2 R 4 G А если ввести второй параметр то останется только одна запись: 1 R Помогите разобраться как составить этот запрос с помощью LEFT JOIN. Заранее благодарен! |
| Автор: Magnifico 30.4.2008, 12:40 |
| это ж надо создать все твои таблицы ,заполнить, подумать скриты готовые давай!!! |
| Автор: Gugle 30.4.2008, 13:06 | ||
| Эээ.. У меня готовые таблици. попробую по другому задать пример. А можно какой нить простой примерчик как от структуры:
перейти к left join. |
| Автор: Magnifico 30.4.2008, 13:35 | ||||
|
| Автор: Gugle 4.5.2008, 13:56 | ||
| Спасибки. Буду ковырять. Пока сниму вопрос с обсуждения. Добавлено через 9 минут и 25 секунд Из "Справочное руководство по MySQL"
Как это? |
| Автор: Gugle 4.5.2008, 14:30 |
| Ээээ... Из примера от Magnifico, по поводу фильтра. Если mysql не находит совпадений значения t1.name1 в таблице t2.name2 он создает это значение с null параметром?!? И соответственно это ответ на мой предидущий вопрос. Но веть если у мя больше таблиц их отсеивать придется. Чет тогда не понимаю зачем нужен left join если он доп строки генерит. |