Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрос на выборку из дву таблиц [D6, Access]


Iehbr ©   (2006-05-30 14:50:00) 

Уважаемые Мастера, делаю в Аccess такой запрос:

SELECT Zayavki.DateA, Nms.Name, Zayavki.Zayava
FROM Zayavki INNER JOIN Nms ON Zayavki.Autor=Nms.[No];

как мне сделать так, чтобы в этом же запросе выбрать еще и
Nms.Name по условию Zayavki.Ispolnitel = Nms.[No]


sniknik   (2006-05-30 17:13:00) [1]

> Так что-ли? По моему не будет работать...
с чего бы это? работать будет, и выдаст даже больше чем ожидаеш ... (как заказывал -> "еще и")

> По крайней мере в справке по JETSQL ничего подобного нет.
> И ничего не говорится о последовательном применении INNER JOIN
> Вот выдержка из справки
> ....
есть, справку надо просто полностью читать, а не выдржками, прямо на той же странице откуда это взял есть пример... 3 примера - простой, с AND/OR в условии, и  вложенный.


Iehbr   (2006-05-30 16:51:00) [2]


> SELECT Zayavki.DateA, Nms1.Name, Zayavki.Zayava, Nms2.Name
> AS Ispolnit
> FROM (Zayavki INNER JOIN Nms Nms1 ON Zayavki.Autor=Nms.[No])
>
> INNER JOIN Nms Nms2 ON Zayavki.Ispolnitel = Nms.[No];


Ошибка синтаксиса в операции JOIN.

У меня подозрения, что в JETSQL нельзя писать JOIN Nms Nms2
По крайней мере в справке по JETSQL ничего подобного нет.
И ничего не говорится о последовательном применении INNER JOIN

Вот выдержка из справки
Синтаксис
FROM таблица_1 INNER JOIN таблица_2 ON таблица_1.поле_1 оператор таблица_2.поле_2


MsGuns   (2006-05-30 16:33:00) [3]

SELECT Zayavki.DateA, Nms1.Name, Zayavki.Zayava, Nms2.Name AS Ispolnit
FROM (Zayavki INNER JOIN Nms Nms1 ON Zayavki.Autor=Nms.[No])
INNER JOIN Nms Nms2 ON Zayavki.Ispolnitel = Nms.[No];


Iehbr   (2006-05-30 16:06:00) [4]

ошибка синтаксиса (пропущен оператор) в выражении запроса 'Zayavki.Autor=Nms.[No]
INNER JOIN Nms Nms2 ON Zayavki.Ispolnitel = Nms.[No]'


Sergey13   (2006-05-30 16:00:00) [5]

2 [5] Iehbr   (30.05.06 15:36)
>предложенная тобой конструкция не работает :(
Как не работает? Просто молчит или совсем выключает комп? 8-)
Или все таки ошибки выдает? Какие? Может там запятую какую нибудь добавить?


Iehbr   (2006-05-30 15:40:00) [6]

Есть у меня предположение, что нужно писать подчиненный запрос.
Может наведете на мысль?


Iehbr   (2006-05-30 15:36:00) [7]

Сергей, спасибо, но предложенная тобой конструкция не работает :(

Я  сам ни в акцессе ни в зуб ногой и SQL с утра начал изучать.


Sergey13   (2006-05-30 15:15:00) [8]

С синтаксисом скорее всего напутал (ибо не знаю аксеса), но как то так.

SELECT Zayavki.DateA, Nms1.Name, Zayavki.Zayava, Nms2.Name AS Ispolnit
FROM Zayavki
INNER JOIN Nms Nms1 ON Zayavki.Autor=Nms.[No]
INNER JOIN Nms Nms2 ON Zayavki.Ispolnitel = Nms.[No];


Iehbr   (2006-05-30 15:10:00) [9]

Я имею ввиду, что мне надо отобразить таблицу вида:
Дата | Автор| Заявка | Исполнитель|


Iehbr   (2006-05-30 15:07:00) [10]

SELECT Zayavki.DateA, Nms.Name, Zayavki.Zayava, Nms.Name AS Ispolnit
FROM Zayavki INNER JOIN Nms ON Zayavki.Autor=Nms.[No] OR Zayavki.Ispolnitel = Nms.[No];

Так что-ли? По моему не будет работать...


sniknik   (2006-05-30 14:57:00) [11]

... OR Zayavki.Ispolnitel = Nms.[No]


Наверх

Титульная страница Поиск, карта сайта Написать письмо