Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.05.2008, 15:51
sunny-sun sunny-sun вне форума
Прохожий
 
Регистрация: 06.05.2008
Сообщения: 7
Репутация: 10
По умолчанию вопрос по запросу.

есть такой запрос : select [дата начала], [дата окончания],[отель] from заказы where [клиент] in
( select [id_клиента] from клиенты where [id_группы] is not null);

он выводит [дата начала], [дата окончания] и [отель] в DBGrid. но дело в том, что в таблице заказы хранится не само название отеля, а его id, оно и выводится. название отеля содержится в другой связанной таблице Отели. в ней есть [id_отеля] и [название].
Как сделать так, чтобы в DBGrid в столбике "название" выводилось название отеля, соответствующее id, которое выводится.
Ответить с цитированием
  #2  
Старый 09.05.2008, 16:01
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

...
from [клиенты] left join [отели] on [клиенты].[отель] = [отели].[id_отеля]
...

т.е. остальное - как у тебя, а заместо from вставляешь то, что я написал.
Да, и еще в списке полей вместо [отель] селектить [отели].название
Ответить с цитированием
  #3  
Старый 09.05.2008, 16:25
sunny-sun sunny-sun вне форума
Прохожий
 
Регистрация: 06.05.2008
Сообщения: 7
Репутация: 10
По умолчанию

то есть так :
select [дата начала], [дата окончания], отели.[название]
from заказы left join [отели] on заказы.[отель] = отели.[id_отеля] where [клиент] in
( select [id_клиента] from клиенты where [id_группы] is not null);
да ?
Ответить с цитированием
  #4  
Старый 11.05.2008, 17:23
sunny-sun sunny-sun вне форума
Прохожий
 
Регистрация: 06.05.2008
Сообщения: 7
Репутация: 10
По умолчанию

ещё один вопрос .
к этому запросу надо ещё добавить поиск фамилия клиента, id которого содержится в таблице заказы, а фамилия- в таблице клиенты.
то есть имеющийся запрос :
select [дата начала], [дата окончания], отели.[название]
from заказы left join [отели] on заказы.[отель] = отели.[id_отеля]
where [клиент] in
( select [id_клиента] from клиенты where [id_группы] is not null);
надо добавить ещё клиенты.[Фамилия], а еще написать ...join [клиенты] on заказы.[клиент] = клиенты.[id_клиента]...
какой join надо использовать в этом случае ?
заранее спасибо !
Ответить с цитированием
  #5  
Старый 11.05.2008, 17:52
sunny-sun sunny-sun вне форума
Прохожий
 
Регистрация: 06.05.2008
Сообщения: 7
Репутация: 10
По умолчанию

select [дата начала], [дата окончания], клиенты.[Фамилия]
from заказы left join [отели] on (заказы.[отель] = отели.[id_отеля])
left join [клиенты] on (заказы.[клиент] = клиенты.[id_клиента])
where [клиент] in
( select [id_клиента] from клиенты where [id_группы] is not null);

когда пишу так - пишется, что ошибка синтаксиса.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter