|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.01.2012, 11:43 | #1 |
Пользователь
Регистрация: 06.07.2011
Сообщений: 20
|
[SQL] Связь нескольких таблиц
Приветствую всех, у меня проблема.
Не могу связать несколько таблиц с одной таблицей. Использую компонент ADOQuery Гл.таблица(Родительская таблица): Students Вторичные таблицы(Дочерние таблицы): Pasport, Predki Код:
LEFT JOIN Predki ON Students.ID_CoD_Student = Predki.ID_CoD2_Pred] Помогите пожалуйста, уже весь измучился. Заранее спасибо |
20.01.2012, 11:53 | #2 |
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
Не уверен, но по моему при таких запросах к ACCESS требовались скобки
как то так Код:
|
20.01.2012, 12:10 | #3 |
Пользователь
Регистрация: 06.07.2011
Сообщений: 20
|
vovk, спасибо Помогло Но проблема....
Появились дублирующие записи... Последний раз редактировалось Never74; 20.01.2012 в 12:38. |
20.01.2012, 14:52 | #4 | ||
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
Прочитал внимательно запрос, и думаю что вам без вложенного запроса тут не обойтись, как то так
Код:
Возможно существуют и другие, более правильные решения. Кстати я у вас вижу возможные слабые места. Это таблица Цитата:
Цитата:
Мне кажется, что логичнее было бы завести таблицу Persons, и всех реальных людей записывать туда 1 раз, а связи между ними описывать с помощью отдельной таблицы. Хотя у этого подхода возможно тоже есть слабые стороны. Последний раз редактировалось vovk; 20.01.2012 в 14:54. |
||
20.01.2012, 15:15 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Судя по названиям таблиц Pasport - таблица с паспортными данными студента. Для каждого студента там одна запись (ну не два же паспорта у человека). Из-за нее наврядли дублирование. Если я угадал, то вообще не было смысла эти данные в отдельную таблицу заносить. А вот Predki - это папа с мамой, две записи. Может быть конечно и одна. В этом случае ни первый, ни второй вариант от дублирования записей не спасет. Нужно послушать ТС - что он хочет получить от запроса, желательно на примере
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
20.01.2012, 17:27 | #6 |
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
Ну если в таблице паспорт требуется хранить данные только о текущем паспорте, то да разделять смысла нет.
А вот если информация о ранее выданных паспортах (замена по утере, смене фамилии, порче) хранится, то в отдельной таблице смысл есть. Вложенный запрос я предложил представив вариант, что в таблице Pasport и Predki есть повторы ID студента, тогда они могли перемножаться. Но полных дублей быть не должно было, так что действительно надо ждать ТС. Последний раз редактировалось vovk; 20.01.2012 в 17:29. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Связь таблиц | flyinsky | Microsoft Office Access | 3 | 05.12.2010 11:23 |
Связь таблиц | Etlau | Помощь студентам | 0 | 27.12.2009 15:10 |
Связь таблиц в SQL через Delphi | Edelweiss | Помощь студентам | 1 | 09.11.2009 12:44 |
Связь таблиц | maximorion | БД в Delphi | 1 | 22.05.2009 11:30 |
Связь таблиц БД | kaa | БД в Delphi | 5 | 18.09.2007 18:29 |