Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2013, 15:36   #1
SeNaT
Пользователь
 
Регистрация: 07.06.2011
Сообщений: 20
Вопрос Связь между таблицами

Столкнулся с проблемой,немогу написать запрос,где в одном запросе объеденялись связи между 4 и более таблицами.
Призявать по ключевым полям по двум таблицам выходит,вот код,а больше двух таблиц незнаю,выручайте
Код:
SELECT *
FROM Гранд
WHERE id = :id
SeNaT вне форума Ответить с цитированием
Старый 08.05.2013, 15:47   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

В приведенном запросе нет связи и для двух таблиц, т.к. упомянута только одна.

А для объединения данных из разных таблиц существует много разных способов.
Например, UNION и явные объединения разного рода с помощью конструкции JOIN (INNER. OUTER, LEFT, RIGHT). Какой подходит для конкретной ситуации.
Это надо читать, изучать.
Прик вне форума Ответить с цитированием
Старый 08.05.2013, 15:55   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
SELECT *
FROM tabl1 t1
  JOIN tabl2 t2 ON t1.kluch = t2.kluch
  JOIN tabl3 t3 ON t2.kluch = t3.kluch
  /* и т.д. */
WHERE t1.id = :id
так чтоли?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 08.05.2013, 16:10   #4
SeNaT
Пользователь
 
Регистрация: 07.06.2011
Сообщений: 20
По умолчанию

Yurk@ да,но подставив запрос в ADOQuery ,то выдаёт ошибку . Бд access,работаю в ADO.В чём может быть проблема?

Вот фото связи базы
http://www.fotolink.su/v.php?id=bdaf...bafdc129f0c9c2
SeNaT вне форума Ответить с цитированием
Старый 08.05.2013, 16:24   #5
SeNaT
Пользователь
 
Регистрация: 07.06.2011
Сообщений: 20
По умолчанию

Yurk@ что озночает t1,t2 ? это же не ключевое поле,то что это?
SeNaT вне форума Ответить с цитированием
Старый 08.05.2013, 16:35   #6
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

а текст ошибки мы должны сами угадать?
t1, t2, t3 и т.д. это алиасы (короткие имена) таблиц в запросе. чтобы проще было к ним обращаться

upd:
в твоем случае будет примерно так:
Код:
SELECT *
FROM город g
  JOIN районы r ON g.id = r.id
  JOIN котельня k ON r.id2 = k.id2
  JOIN житель j ON k.id3 = j.id3
WHERE g.id = :id
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...

Последний раз редактировалось Yurk@; 08.05.2013 в 16:41.
Yurk@ вне форума Ответить с цитированием
Старый 08.05.2013, 16:50   #7
SeNaT
Пользователь
 
Регистрация: 07.06.2011
Сообщений: 20
По умолчанию

Yurk@ всё таже ошибка при включение ADOQuery,выводит "Неправельно определён объект Parameter.Представленны несогласованные или неполные сведения"
SeNaT вне форума Ответить с цитированием
Старый 08.05.2013, 16:54   #8
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

ну а параметр :id ты хоть как-то прописываешь?
попробуй тот же запрос только без
Код:
WHERE g.id = :id
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 08.05.2013, 17:01   #9
SeNaT
Пользователь
 
Регистрация: 07.06.2011
Сообщений: 20
По умолчанию

Теперь другая ошибка =( Выводит "Ошибка синтаксиса в предложение FROM"
SeNaT вне форума Ответить с цитированием
Старый 08.05.2013, 17:04   #10
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

русские названия возьми в "квадратные" скобки
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
связь между таблицами arhitector C/C++ Базы данных 2 22.01.2012 16:47
Связь между таблицами byte916 Microsoft Office Access 3 03.08.2011 11:05
Связь между двумя таблицами Yanaso91 Microsoft Office Access 5 21.06.2011 22:54
Связь между таблицами Hottabych БД в Delphi 2 15.11.2009 22:09
Связь между таблицами Катрина БД в Delphi 3 17.05.2008 18:24