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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2008, 20:03   #1
Только_Учусь
Пользователь
 
Регистрация: 15.07.2008
Сообщений: 23
Вопрос не получается запрос с inner join :mad:

есть 3 табл. Sotrudniki(name,famaly,otchestvo, id_sotrudnika) , Telefoni(telefon, id_sotrudnika, id_telefona, id_tipa) , Tip_Telefona(naimenovanie(дом., сот., рабочий), id_tipa)

СВЯЗЬ :Sotr. Telef. (1 к множ.); Tip_Tel. Tel (1 к множ.)

хочу объеденить таб. Sotrudniki c табл. Telefoni и с табл. Tip_telefona.
чтобы получить name, famaly, otchestvo, (Tip_Telefona.naimenovanie(рабочий) )

В чем ошибка и как будет правильно???? пишу в access
ЗАРАНЕЕ БОЛЬШОЕ СПАСИБО!!!!

SELECT Sotrudniki.name, Sotrudniki.famaly, Sotrudniki.otchestvo, Tip_Telefona.naimenovanie
FROM Sotrudniki INNER JOIN (Tip_Telefona inner join Telefoni
ON Tip_Telefona.id_tipa=Telefoni.id_ti pa)
ON Sotrudniki.id_sotrudnika=Telefoni.i d_sotrudnika
where Tip_Telefona.naimenovanie="рабочий"

Последний раз редактировалось Только_Учусь; 19.07.2008 в 21:13.
Только_Учусь вне форума Ответить с цитированием
Старый 19.07.2008, 20:48   #2
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Цитата:
Сообщение от Только_Учусь Посмотреть сообщение
ON Sotrudniki.id_sotrudnika=Telefoni.i d_sotrudnika
Что-то я не вижу у вас в таблице "Телефоны" поля "id_sotrudnika". Это первое. Второе: я полагаю, что у вас главная таблица "Сотрудники", а "Телефоны" и "Тип телефона" - это справочники. Поэтому в данном случае в таблице "Сотрудники" я завел бы поле "id_telefona" для связи с таблицей "Телефоны", а не в справочнике "Телефоны" поле "id_sotrudnika". И никаких проблем
edgy вне форума Ответить с цитированием
Старый 19.07.2008, 21:13   #3
Только_Учусь
Пользователь
 
Регистрация: 15.07.2008
Сообщений: 23
По умолчанию

да... ИЗВЕНЯЮСЬ!!! я все исправил!!!! в табл. Telefoni
Только_Учусь вне форума Ответить с цитированием
Старый 19.07.2008, 21:17   #4
Только_Учусь
Пользователь
 
Регистрация: 15.07.2008
Сообщений: 23
По умолчанию

а зачем заводить поле id_telefona, тогда связь будет другая... не получится!!! у одного сотрудника может быть 5, а то и 7 телефонов!(дом., сот., сот_2, сот_3, рабочий, внутренний)!
наскольноко я знаю, справичник имеет связь один к одному! в данном случае такого нет!
может в коде ошибка??????????????
Только_Учусь вне форума Ответить с цитированием
Старый 19.07.2008, 21:25   #5
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Код:
SELECT Sotrudniki.name, Sotrudniki.famaly, Sotrudniki.otchestvo, Tip_Telefona.naimenovanie
FROM (Sotrudniki INNER JOIN Telefoni ON Sotrudniki.id_sotrudnika=Telefoni.id_sotrudnika) INNER JOIN Tip_Telefona ON Telefoni.id_tipa=Tip_Telefona.id_tipa
WHERE Tip_Telefona.naimenovanie="Рабочий";
Оно?
edgy вне форума Ответить с цитированием
Старый 19.07.2008, 21:30   #6
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Цитата:
Сообщение от Только_Учусь Посмотреть сообщение
а зачем заводить поле id_telefona, тогда связь будет другая... не получится!!! у одного сотрудника может быть 5, а то и 7 телефонов!(дом., сот., сот_2, сот_3, рабочий, внутренний)!
Да, сорри, не учел этот вариант.
Тогда что в данном случае означают поля "telefon" и "id_telefona"?
edgy вне форума Ответить с цитированием
Старый 19.07.2008, 21:31   #7
Только_Учусь
Пользователь
 
Регистрация: 15.07.2008
Сообщений: 23
По умолчанию

не работает ...
Только_Учусь вне форума Ответить с цитированием
Старый 19.07.2008, 21:34   #8
Только_Учусь
Пользователь
 
Регистрация: 15.07.2008
Сообщений: 23
По умолчанию

поле telefon - номер тел. 8-962-###-##-## ...
поле id_telefona - его ID!, строки
Только_Учусь вне форума Ответить с цитированием
Старый 19.07.2008, 21:36   #9
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Цитата:
Сообщение от Только_Учусь Посмотреть сообщение
не работает ...
Хм... Скиньте тогда сюда картинкой вашу схему данных. Значит я что-то не правильно понял.
edgy вне форума Ответить с цитированием
Старый 19.07.2008, 21:43   #10
Только_Учусь
Пользователь
 
Регистрация: 15.07.2008
Сообщений: 23
По умолчанию

а как сюда скинуть картинку???
Только_Учусь вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не получается программирование COM Nikuzkin Общие вопросы Delphi 9 11.06.2008 14:23
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
Не получается..... Delpher HTML и CSS 2 25.12.2007 13:17
Не получается вывести график RECREATOR Общие вопросы Delphi 7 23.12.2007 01:23
Не получается прочитать из файла...( Regloger Помощь студентам 3 09.12.2007 14:23