SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.01.2011 13:19:33

sbury
Участник
Зарегистрирован: 26.01.2011
Сообщений: 9

помогите с запросом с LEFT JOIN из 3 таблиц

Всем доброе время суток, помогите пожалуйста с запросом. никак у меня не получается
есть таблица price

id     tour_id     room_id     price_data     price_price     day
1        1                1              20111002      963.53      17     
2       3               1             20111002     563.53     7
3       4               1             20111002     665.88     10
4      5              1             20111002     789.45     9


вторая таблица tour
tour_id     tour_date       hotel_id    
1               20101220         4
2               20101220             1
3               20101220             3
4               20101220       1
5               20101220       26

и третья таблица hotel

hotel_id     hotel_name        hotel_country     hotel_city                      hotel_stars
1     GERAKINA BEACH HOTEL     Греция     Халкидики-Ситония           3*
2     SITHONIA THALASSO & SPA     Греция     Халкидики-Ситония           4*
3     EKIES ALL SENSES RESORT     Греция     Халкидики-Ситония           4*
4     MELITON HOTEL                     Греция     Халкидики-Ситония           5*
5     PORFI BEACH HOTEL             Греция     Халкидики-Ситония           3*
6     SURMELI HOTEL                     Турция             Анкара                   5*
...
26      DUSIT PRINCESS KORAT      THA               Бангкок                             4*
27     EASTIN HOTEL MAKKASAN     THA              Бангкок                           4*
28     IMM FUSION SUKHUMVIT     THA              Бангкок                           3*
29     HILTON LONG BEACH RESORT     Египет      Hurgada                          4*
30     CORAL BEACH ROTANA RESORT     Египет     Hurgada                    4*

как правильно построить запрос, который зависит от диапазона цены (от 100 до 1500 таблица price), и от выбранных городов - анкара и бангкок(таблица hotel). Связь между этими таблицами только через таблицу tour в которой есть поле hotel_id

Это я так думаю что надо через LEFT JOIN, может правильно будет как то иначе  Прошу любой помощи.

Отредактированно sbury (26.01.2011 13:44:33)

Неактивен

 

#2 26.01.2011 19:14:47

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: помогите с запросом с LEFT JOIN из 3 таблиц

Да, только не надо использовать левые объединения там, где они не нужны.

SELECT ... FROM price JOIN tour USING (tour_id) JOIN hotel USING (hotel_id)
WHERE ...;

Ну и символ звездочки можно не хранить wink

Неактивен

 

#3 26.01.2011 20:53:33

sbury
Участник
Зарегистрирован: 26.01.2011
Сообщений: 9

Re: помогите с запросом с LEFT JOIN из 3 таблиц

WHERE ...;
извиняюсь за типизм , а здесь как надо записать... Очень прошу помочь по полям на моем примере. Иначе я так не разберусь...
Спасибо

Неактивен

 

#4 26.01.2011 21:54:21

Altukhov
Участник
Зарегистрирован: 25.01.2011
Сообщений: 9

Re: помогите с запросом с LEFT JOIN из 3 таблиц

прозреваю что WHERE price_price >=100 and price_price<=1500 and (hotel_city = "Анкакра" or hotel_city = "Бангкок")

Неактивен

 

#5 27.01.2011 11:40:33

sbury
Участник
Зарегистрирован: 26.01.2011
Сообщений: 9

Re: помогите с запросом с LEFT JOIN из 3 таблиц

работает! smile
Огромное спасибо! Первый раз в жизни у меня с вашей помощью заработал JOIN.
Еще раз всем огромное спасибо.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson