|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Волей судеб пришлось поработать в ЭТОМ... Пытаюсь к одной таблице присоединить несколько других, набираю на честном SQL следующий запрос Код: plaintext 1. 2. 3. 4. 5. 6. 7.
И аксес на него материться что запрос не верный... Где и что я упустил в синтаксисе акссеса? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2009, 14:25 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Скобки. Есть удобный тип для джетовского SQL (как-то так, потому что с джетом ен работаю, может кто поправит): Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2009, 14:30 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Читайте факи, прежде чем задавать вопрос. Нужно поставить скобки. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2009, 14:31 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Если, честно, то не очень понял, как мне скобки расставил конструктор, то получилось, что JOIN делается к предыдущему JOIN, а не к первой таблице, со всеми вытекающими. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2009, 14:53 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
arnikполучилось, что JOIN делается к предыдущему JOIN, а не к первой таблице Да, так и есть. И подозреваю, что без скобок тоже так. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2009, 15:04 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Владимир Санычarnikполучилось, что JOIN делается к предыдущему JOIN, а не к первой таблице Да, так и есть. И подозреваю, что без скобок тоже так. Спасибо. Все у этого майкрософта через Ж. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2009, 15:05 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
arnik, не думаю что Майкрософт сознательно бы менял канонический вид SQL запросов, скорее всего все из за того. что у них имеется мастер составления запросов, а он сами понимаете скорее всего накладывает ограничения на формирование логики запроса, потому скорее всего у них и все через Ж ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2013, 17:18 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Thisrootскорее всего все из за того. что у них имеется мастер составления запросовНет. Это следствие выборанного способа хранения запроса. Он преобразуется во внутренний язык и хранится в формализованном виде. Если текст запроса не формализуется имеющимися алгоритмами - он хранится в исходном виде. Однако возможен промежуточный вариант - текст формализуется, но его формализованное представление зависит от порядка формализации. В этом случае формализатор, чтобы избежать ошибки, просто выдаёт сообщение о нарушении синтаксиса (и он прав - лучше перебдеть). Согласись, что эквивалентность (t1 left join t2) left join t3 и t1 left join (t2 left join t3) несколько сомнительна... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2013, 18:38 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Akina, Я кстати то же искал по сети решение данного вопроса, нашел какие то ответы, но составить грамотный запрос так и не получилось. Я не знаю где там у Майрософт факи но по поводу множественных left / rigth jion -ов информации мало, попробовал построить запрос по найденному не получилось, может подскажете? Обязательно использовать "AS"? Делал что то вроде того: SELECT A,B,C FROM A LEFT JOIN (B LEFT JOIN C ON C.1 = A.1) ON B.1 = A.2; Ничего не понятно. В общем есть таблица А, в ней поля. A.3 - наименование, A1 - индекс привязанный к ключевым полям С.1, A.2 - индекс привязанный к полям B.2 Я просто до join еще не дошел по книге, а задача стала на уровне работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 00:36 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Thisroot, SELECT * FROM Таблица1 LEFT JOIN (Таблица2 LEFT JOIN Таблица3 ON Таблица3.[1]=Таблица1.[1]) ON Таблица2.[12]=Таблица1.[1] вот такое решение нашел но не получилось. Еще один ответ: Цитата Сообщение от skorik-1992 Посмотреть сообщение Я пытался, он делает через inner join, а мне нужно именно left А мышкой на связь щёлкнуть и выбрать нужное объединение? Трудно? А как тогда в мастере запросов тип соединения выбрать? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 00:40 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Мышкой же по линии связи ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 09:02 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Thisrootпо поводу множественных left / rigth jion -ов информации мало Готовясь написать запрос, который устроит Майкрософтовский парсер, приготовьте пару коробок круглых скообок... короче - скобки ВЕЗДЕ! и где надо, и где вроде бы нафиг не надо... это раз. Два - никаких звёздочек. Надо сотню полей в выводе? пиши всю сотню по одному. Не переломишься. Далее - AS формально нафиг не нужен. Однако страдает читабельность как минимум. Отнесись к нему так же, как к скобкам. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 09:06 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Кошка!, Спасибо не догадался. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 12:32 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
На схеме данных тоже можно по связям тыкать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2013, 13:31 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
автор=ThisrootSELECT * FROM Таблица1 LEFT JOIN (Таблица2 LEFT JOIN Таблица3 ON Таблица3.[1]=Таблица1.[1]) ON Таблица2.[12]=Таблица1.[1] вот такое решение нашел но не получилось. Не получилось потому, что надо так: SELECT * FROM (Таблица1 LEFT JOIN Таблица2 ON Таблица2.[1]=Таблица1.[1]) LEFT JOIN Таблица3 ON Таблица3.[1]=Таблица1.[1] Следите за скобками! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2015, 12:56 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
СергейЯСледите за скобками! А что не так было со скобками? (a+b)+c или a+(b+c) - какая разница? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 10:32 |
|
Множественны LEFT JOIN в ACCESS
|
|||
---|---|---|---|
#18+
Владимир СанычСергейЯСледите за скобками! А что не так было со скобками? (a+b)+c или a+(b+c) - какая разница? Отвечаю сам себе: Таблица 2 LEFT JOIN Таблица3 ON Таблица3.[1]=Таблица 1 .[1] ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 13:43 |
|
|
start [/forum/topic.php?fid=45&fpage=120&tid=1614201]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 323ms |
total: | 470ms |
0 / 0 |