powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / для чего нужны связи между таблицами
9 сообщений из 9, страница 1 из 1
для чего нужны связи между таблицами
    #33089138
nonentity
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос может показаться немножко странным. но тем не менее.
рассмотрим случай: есть две таблицы:
County с полями team, country, team_photo
Manager с полями team, manager, sponsors
поля team в обоих таблицах уникальны (их значения не повторяются)
создано два индекса по полю team в каждой таблице (в одной Primary, в другой regular). с помощью двух индексов соединены две таблицы (если посмотреть схему БД,то там появится линия связи :О) )
нужно написать запрос для двух таблиц.
вопрос заключается в следующем: можно ли писать запрос типа:
select country.country, manager.manager;
from teams!country, teams!manager;
where team = "Cofidis"
чтобы получить одну запись
я рассуждал так: если я в БД установил связь между таблицами, то фразу типа
FROM teams!country INNER JOIN teams!manager ;
ON Country.team = Manager.team;
писать не надо (ведь не зря же я устанавливал связь)
если можно, то какие свойства и где их нужно прописать для связи, чтобы оно работало?
...
Рейтинг: 0 / 0
для чего нужны связи между таблицами
    #33089157
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По неизвестной причине сейчас недоступен сайт фоксклуба, поэтому почитай вложенный файл.

Хотя Владимир Токарев крайне отрицательно относиться к тому, что в этом файле написано. Правда, он не уточнил, что именно ему не нравиться - терминология или изложенные соображения. Попробую попозже у него уточнить...
...
Рейтинг: 0 / 0
для чего нужны связи между таблицами
    #33089190
nonentity
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за предоставленную информацию, она полезна, но чуток не по моей проблеме. может я непрвильно задал вопрос - попробую сформулировать его по другому:
можно ли каким-нибудь образом настроить связи в БД так, чтобы при написании запросов к таблицами вручную не прописывать JOIN (препод утверждает, что можно, и за незнание этого поимел одногруппницу)
...
Рейтинг: 0 / 0
для чего нужны связи между таблицами
    #33089209
Иван Махно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял, твой препод хочет что бы ты изучил команды фокса по явной устновке реляционных связей. Это тебе в хелп. Тут, кстати, много постов на эту тему.
P.S: Контрольноая фраза SET RELATION TO
Что касаеться INNER JOIN , то тут главное чтобы ты сам "в голове знал" какие логические связи между таблицами по ключевым полям и кто на кого ссылаеться и к SET RELATION TO отношения не имеет.
Уж если не в тему то тогда ,сэр, учитесь донести вопрос на который хотите получить ответ, а не так что " пишу то, что только мне понятно".
...
Рейтинг: 0 / 0
для чего нужны связи между таблицами
    #33089223
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nonentityможно ли каким-нибудь образом настроить связи в БД так, чтобы при написании запросов к таблицами вручную не прописывать JOIN
Нет. Нельзя. Или ты опять спрашиваешь не так или не о том.

nonentityпрепод утверждает, что можно
Пусть сообщит как? Мне тоже интересно.

"Автоматически" связь настраивается только в автоматически же построенных запросах (дизайнер Query или Local View). Да и то, далеко не всегда.
...
Рейтинг: 0 / 0
для чего нужны связи между таблицами
    #33089235
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще говоря, все, что может быть сделано с помощью INNER JOIN, может быть сделано также и в WHERE.
Но к настройке связей в БД этот факт не имеет никакого касательства. ;-)
...
Рейтинг: 0 / 0
для чего нужны связи между таблицами
    #33089253
nonentity
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так, вопрос для себя я решил и без препода )
напомню, что две таблицы связаны по принципу "один-к-одному" по полю team в конструкторе базы данных
одно и тоже можно получить следующим образом
1.
select country.country, manager.manager;
from teams!country inner join teams!manager;
on country.team=manager.team;
where country.team = "Cofidis"
но так препод "не разрешает" :О)
2.
select country.country, manager.manager;
from teams!country, teams!manager;
where country.team = "Cofidis" and manager.team = "Cofidis"
тоже кривоватый способ, так как по нему не видно всех "плюсов" установленной связи
3.
select country.country, manager.manager;
from teams!country, teams!manager;
where country.team = "Cofidis" and manager.team = country.team
а вот это по-ходу, то, чего так отчаянно пытался препод получить от девочки :О)

всем спасибо, вопросов больше нету
...
Рейтинг: 0 / 0
для чего нужны связи между таблицами
    #33089257
афигеть!!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Все варианты будут прекрасно работать без "нарисованных" связей, и даже без индексов.
2. Если уж не указывать cовсем, то так тоже будет работать:
Код: plaintext
1.
2.
3.
4.
SELECT country
SET RELATION TO team INTO manager
select country.country, manager.manager;
from country
where country.team = "Cofidis"
no comments, потому что мешать полезное с приятным можно, но не всегда это идет на пользу.
3. Передай преподу, что он ошибся в выборе сферы деятельности.
...
Рейтинг: 0 / 0
для чего нужны связи между таблицами
    #33089465
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi nonentity!

Варианты 1 и 3 равнозначны, причём вариант 1 более логичен с точки зрения стандарта языка SQL - мы там явно отделяем условия связи от прочих условий отбора. Кроме того вариант 1 путём небольшой замены (INNER а LEFT или RIGHT) позволяет получить результаты для случай "неполных" связей - например в одной таблице есть запись с team="что-то" а в другой - нету.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / для чего нужны связи между таблицами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]