Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];

Вниз

Несколько LEFT JOIN в Акцесс   Найти похожие ветки 

 
Anatoly Podgoretsky ©   (2008-01-18 08:57) [0]

Возможен ли запрос в Акцесс (доступ через JET) такого вида

FROM tbl1
LEFT JOIN tbl2 ON условие
LEFT JOIN tbl3 ON условие

По документации на JET вроде только для INNER JOIN


 
sniknik ©   (2008-01-18 10:58) [1]

а чего нет? главное соблюдать синтаксис со вложенностями джойнов как в справке описано. (тут, в вопросе, он неправильный)


 
sniknik ©   (2008-01-18 11:04) [2]

и кстати, в самом access-е (программе) есть неплохой мастер (конструктор) по составлению запросов... да вставляет много лишнего, да есть заморочки с различиями в понятиях (например неопределенный набор символов в запросе это не ошибка, это параметр... который при выполнении в самом аксессе будет запрошен. поля подстановки это не поля хотя так представлены), да сложный запрос после него обычно требует ручной доводки... но в общем то представление и вариант запроса он дает, и даже не знающий SQL может с его помощью составить чтото вполне рабочее.


 
Евгений Р.   (2008-01-18 11:08) [3]

А чот в синтаксисе не так?


 
sniknik ©   (2008-01-18 11:12) [4]

документация или F1 в самом access-е.


 
MsGuns ©   (2008-01-18 11:23) [5]

FROM tbl1
((LEFT JOIN tbl2 ON условие)
LEFT JOIN tbl3 ON условие)
LEFT JOIN tbl4 ON условие


 
MsGuns ©   (2008-01-18 11:27) [6]

>sniknik ©   (18.01.08 11:04) [2]
>и кстати, в самом access-е (программе) есть неплохой мастер (конструктор) по составлению запросов...

"Какая гадость ! Какая гадость эта ваша заливная рыба" (с)
 ;))


 
sniknik ©   (2008-01-18 11:38) [7]

гадость, не гадость, а набросать "черновик" и/или посмотреть синтаксис позволяет, у многих и такого нет.


 
Евгений Р.   (2008-01-18 12:02) [8]


> документация или F1 в самом access-е.

С access не работал, отличается от стандартной?


 
Anatoly Podgoretsky ©   (2008-01-18 12:18) [9]


> документация или F1 в самом access-е.

Документация по JETSQL молчит об этом, а документации по Акцесс или самого Акцесса у меня нет.


 
Евгений Р.   (2008-01-18 12:29) [10]

В LocalSQL и FB использую постоянно именно такой синтаксис. Проблем нет. Ну а с Акцесс не сталкивался


 
Anatoly Podgoretsky ©   (2008-01-18 12:35) [11]


> MsGuns ©   (18.01.08 11:23) [5]
> FROM tbl1
> ((LEFT JOIN tbl2 ON условие)
> LEFT JOIN tbl3 ON условие)
> LEFT JOIN tbl4 ON условие

Не фига такой синтаксис не работает, даже

FROM tbl1
(LEFT JOIN tbl2 ON условие)

сразу ругается на ошибку синтаксиса в FROM
и также на

FROM tbl1
((LEFT JOIN tbl2 ON условие)
LEFT JOIN tbl3 ON условие)


 
Евгений Р.   (2008-01-18 12:46) [12]

В LocalSQL и FB

from t1
left join t2
 on t1.fld1=t2.fld1
left join t3
 on t3.fld1=t2.fld1 and t3.fld2=t1.fld5

К статьи, не знаю как по теории, но если в t2 окажется несколько записей с критерием  t1.fld1=t2.fld1, то в выборке будет 2 строки


 
sniknik ©   (2008-01-18 12:51) [13]

> Не фига такой синтаксис не работает
должен, по сути, только MsGuns скобочки неправильно расставил (надо было смотреть в справке по INNER JOIN)

вот так правильнее
FROM
(tbl1 LEFT JOIN tbl2 ON условие) LEFT JOIN tbl3 ON условие


 
Евгений Р.   (2008-01-18 13:06) [14]

Вот первый попавшийся кусок живого текста из FB

       select sp.kNom,sp.nMesta,sp.mest,sk.mest as mst
       from asPos sp
         left join sNom sn
            on sn.knom=sp.knom
         left join sKatNom sk
            on sk.kod=sn.kkat
       where idfd=6338

вот результат

KNOM NMESTA MEST MST
416 0 2 2
418 0 2 2
435 1 1 2
437 0 2 2
324 0 2 2


 
Anatoly Podgoretsky ©   (2008-01-18 13:43) [15]


> FROM
> (tbl1 LEFT JOIN tbl2 ON условие) LEFT JOIN tbl3 ON условие

Другое дело, как только я не ставил скобки, но не догадался после FROM
Теперь работает.


 
ANTPro ©   (2008-01-18 13:50) [16]

SELECT Таблица1.Код, Таблица2.название11, Таблица3.название22
FROM Таблица3
INNER JOIN (Таблица2 INNER JOIN Таблица1 ON Таблица2.Код = Таблица1.Название1) ON Таблица3.Код = Таблица1.Название2;
---
Access 2007


 
MsGuns ©   (2008-01-18 14:53) [17]

Невнимательно просмотрел что набрал (копипас гробит нас ;))
Синтаксис такой или почти такой как в Local SQL

Анатолий, а можно было вложенными сделать:
Select from t3 left join
(Select from t1 left join t2 on) on ..

А вот такой номер в локале нем прокатит ;)


 
Anatoly Podgoretsky ©   (2008-01-18 15:41) [18]


> Анатолий, а можно было вложенными сделать:

Можно, но я предпочитаю быструю работу, метод предложенный sniknik работает.
Меня другое волнует, неужели я так плохо читаю документацию, что не нашел такого примера. Я навсякий случай просмотрел пример и по INNER JOIN ну нет такого синтаксиса и даже намека на него.


 
eddoc   (2008-01-21 13:55) [19]

>>Меня другое волнует, неужели я так плохо читаю документацию, что не нашел такого примера.

Анатолий, "... ну вы, блин, даете!" (с)
Я около 1,5 лет назад задавал подобный вопрос на  форуме скул.ру - и до сих пор считал автором правильного ответа именно Вас :)


 
Anatoly Podgoretsky ©   (2008-01-21 18:48) [20]

> eddoc  (21.01.2008 13:55:19)  [19]

Так это когда было :-)
А вопрос точно такой был?
Просто я дернулся в справку а там ничего нет.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.045 c
2-1212413687
Massiv
2008-06-02 17:34
2008.06.29
Копия массива


6-1189422268
__DATA__
2007-09-10 15:04
2008.06.29
Получение параметров HTML формы в TIdHTTPServer


15-1211182046
User1
2008-05-19 11:27
2008.06.29
Mini Host


15-1210924890
Petya
2008-05-16 12:01
2008.06.29
Подскажите, а можно в DBGrid вывести цифры


10-1146918480
Dmitrij_K
2006-05-06 16:28
2008.06.29
IHTMLDocument2 получение всех ссылок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский