|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
Всем привет, никак не могу освоить запрос через несколько таблиц с джоинами... ужас какой-то... Самолеты ----------- samoletid markasamoletid Марка ------- markasamoletid markasamoletname Пилоты -------- pilotid pilotname Вылеты --------- samoletid pilotid vuletid vuletdate Нужно найти id вылета(vuletid), совершенного пилотом (pilotname) например, Василий на самолете марки, например, Боинг." Найти, когда каждый pilotid совершил свой первый вылет и последний вылет и на каком самолете Подскажите, пожалуйста, как это сделать.... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 18:31 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
anton6, Так как ни каких наработок нет, то исходим из того что мат часть не учим. для начала постройте широкую таблицу ((начаиная с Вылетов соединенные с Пилотами) соединенные с Самолетами) соединенный с Маркой Затем используя предложение Where отберите с нужным условием. С поиском первых и последних записей немного сложнее ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 19:26 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
Мат часть смотрел) Второй день) Код: sql 1.
Как к этой строке подсоединиться еще через пару таблиц... не знаю Думаю, но никак не додумаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 09:25 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
anton6 , начните с более простого варианта. Просто сначала перечисляем используемые таблицы, а потом условия соответствия записей в них. Типа Код: sql 1. 2. 3. 4. 5. 6.
Так получите все поля всех таблиц (с кучей дублирований, конечно). Теперь начинайте, видя этот массив и понимая, что надо выбрать, добавлять дополнительные условия отборов. Типа Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Каждый раз, добавляя очередное условие, проверяйте, соответствует ли результат тому, что ожидалось, не осталось ли что-то, что очередное условие должно было убрать, не убралось ли то, что должно было остаться... Именно это имелось в виду, когда были сказаны фразы Swa111для начала постройте широкую таблицу ((начиная с Вылетов соединенные с Пилотами) соединенные с Самолетами) соединенный с Маркой Затем используя предложение Where отберите с нужным условием. Как превратить всё это в джойн-синтаксис - это другой вопрос. Но он возникнет именно потом, когда с конвертацией простейшей логики в запрос с картезианским объединением перестанет представлять проблему. \ ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 09:43 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
anton6, А Вы уверены,что схема БД разработана верно? Лично у меня сомнения по поводу таблиц "самолеты" и "марки"-каково их назначение и какие данные в них хранятся? При правильно спроектированной базе (с установлением связей) создание запроса,хоть из десятка таблиц, в конструкторе не вызывает ни малейших сложностей ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 11:16 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
sdkuanton6, А Вы уверены,что схема БД разработана верно? Лично у меня сомнения по поводу таблиц "самолеты" и "марки"-каково их назначение и какие данные в них хранятся? При правильно спроектированной базе (с установлением связей) создание запроса,хоть из десятка таблиц, в конструкторе не вызывает ни малейших сложностей да все нормально там со схемой. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 11:23 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
Вдогонку:и вообще обычно работают с экипажами,которые состоят из нескольких человек и как исключение экипажи бывают сборными,но это надо предусматривать.+далеко не каждый пилот может летать на конкретной марке самолета. Короче:если Вы создаете что-то серьезное учитывайте все возможные нюансы,а если же хотите узнать про объединения читайте HELP-там все написано (вряд-ли в рамках форума Вам это объяснят лучше чем вдумчиво прочесть) Если хотите изложите задачу,стоящую перед Вами, и выложите свои наработки ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 11:29 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
sdkuВдогонку:и вообще обычно работают с экипажами,которые состоят из нескольких человек и как исключение экипажи бывают сборными,но это надо предусматривать.+далеко не каждый пилот может летать на конкретной марке самолета. Короче:если Вы создаете что-то серьезное учитывайте все возможные нюансы,а если же хотите узнать про объединения читайте HELP-там все написано (вряд-ли в рамках форума Вам это объяснят лучше чем вдумчиво прочесть) Если хотите изложите задачу,стоящую перед Вами, и выложите свои наработки дык парень для люфтганзы разрабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 11:33 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
Так, что - то получилось, не подсказывайте) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 12:13 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
посмотрите:(для определения первого и последнего вылета в тбл."вылеты" должно быть поле с данными о дате и времени вылета) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 12:27 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
Все...все перегуглил... нашел синтаксис для vba через одну таблицу запрос сделал, через две никак... Подскажите, пожалуйста, где неточности Это работает sb = "SELECT [Pilots$].PilotID, [Samoletlist$].samoletId, [Samolets$].SamoletsId, [Samolets$].SamoletmarkaId " _ & "FROM ([Pilots$]" _ & "inner JOIN [Samoletlist$] ON [Pilots$].PilotID = [Samoletlist$].PilotID)" _ & "inner JOIN [Samolets$] ON [Samoletlist$].samoletId = [Samolets$].SamoletsId" _ & "Where Name like 'Вася'" А это уже нет... sb = "SELECT [Pilots$].PilotID, [Samoletlist$].samoletId, [Samolets$].SamoletsId, [Samolets$].SamoletmarkaId, [SamoletMarka$].SamoletMarkaName " _ & "FROM ([Pilots$]" _ & "inner JOIN [Samoletlist$] ON [Pilots$].PilotID = [Samoletlist$].PilotID)" _ & "inner JOIN [Samolets$] ON [Samoletlist$].samoletId = [Samolets$].SamoletsId" _ '& "inner JOIN [SamoletMarka$] ON [Samolets$].SamoletmarkaId= [SamoletMarka$].SamoletmarkaId " _ & "Where Name like 'Вася'" И так и так скобки ставил... не получается... прошу помочь ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 13:51 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
Все...все перегуглил... нашел синтаксис для vba через одну таблицу запрос сделал, через две никак... Подскажите, пожалуйста, где неточности Это работает Код: sql 1. 2. 3. 4. 5.
А это уже нет... Код: sql 1. 2. 3. 4. 5. 6.
И так и так скобки ставил... не получается... прошу помочь ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 13:51 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
anton6, скобок не хватает () ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 13:54 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
sb = "SELECT [Pilots$].PilotID, [Samoletlist$].samoletId, [Samolets$].SamoletsId, [Samolets$].SamoletmarkaId, [SamoletMarka$].SamoletMarkaName " _ & "FROM (([Pilots$]" _ & "inner JOIN [Samoletlist$] ON [Pilots$].PilotID = [Samoletlist$].PilotID)" _ & "inner JOIN [Samolets$] ON [Samoletlist$].samoletId = [Samolets$].SamoletsId)" _ '& "inner JOIN [SamoletMarka$] ON [Samolets$].SamoletmarkaId= [SamoletMarka$].SamoletmarkaId " _ & "Where Name like 'Вася'" ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 13:54 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
anton6, у вас ошибка синтаксиса в первую очередь попробуйте так. без строк продолжения(не забывайте пробел в начале под-строки) Код: vbnet 1. 2. 3. 4. 5. 6. 7.
хотя я не уверена, что вы правильно прописали inner JOIN ,т.к. явно не хватает скобок ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 14:01 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
Скобки пробовал, но все равно что-то идет не так Сложный синтаксис... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 14:12 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
anton6, выложите пример базы --не создавать же пример за вас(всеж 4 таблицы) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 14:18 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
а пока на примере SDQU КодВпилотмаркатипдата вылетадата прилета1КоляАН-24турбовинтовой01.12.201802.12.20182ВасяА-320турбореактивный02.12.201803.12.20183ПетяXian МА-700турбовинтовой05.12.201806.12.20184АнтонА-320турбореактивный04.12.201806.12.2018 авторНужно найти id вылета(vuletid), совершенного пилотом (pilotname) например, Василий на самолете марки, например, Боинг." Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
получим ответ=2 сравните скобки вашего примера и этого ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 14:33 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
anton6И так и так скобки ставил... не получается... прошу помочь Вот заморочился то.... Я через конструктор делаю, он сам все скобки как надо расставляет... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 14:37 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
anton6, добавила записей КодВпилотмаркатипдата вылетадата прилета1КоляАН-24турбовинтовой01.12.201802.12.20182ВасяА-320турбореактивный02.12.201803.12.20183ПетяXian МА-700турбовинтовой05.12.201806.12.20184АнтонА-320турбореактивный04.12.201806.12.20185КоляАН-24турбовинтовой01.11.201802.12.20186ВасяА-320турбореактивный02.11.201803.12.20187ПетяXian МА-700турбовинтовой05.11.201806.12.20188АнтонА-320турбореактивный04.11.201806.12.20189КоляАН-24турбовинтовой01.10.201802.12.201810ВасяА-320турбореактивный02.10.201803.12.201811ПетяXian МА-700турбовинтовой05.10.201806.12.201812АнтонА-320турбореактивный04.10.201806.12.2018 авторНайти, когда каждый pilotid совершил свой первый вылет и последний вылет и на каком самолете зап2 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
пилотMin-дата вылетаMax-дата вылетаАнтон04.10.201804.12.2018Вася02.10.201802.12.2018Коля01.10.201801.12.2018Петя05.10.201805.12.2018 зап3 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
КодВпилотмарка.маркатипдата вылетадата прилета12АнтонА-320турбореактивный04.10.201806.12.20184АнтонА-320турбореактивный04.12.201806.12.201810ВасяА-320турбореактивный02.10.201803.12.20182ВасяА-320турбореактивный02.12.201803.12.20189КоляАН-24турбовинтовой01.10.201802.12.20181КоляАН-24турбовинтовой01.12.201802.12.201811ПетяXian МА-700турбовинтовой05.10.201806.12.20183ПетяXian МА-700турбовинтовой05.12.201806.12.2018 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 14:57 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
Serg197311anton6И так и так скобки ставил... не получается... прошу помочь Вот заморочился то.... Я через конструктор делаю, он сам все скобки как надо расставляет... я тоже запрос делаю через конструктор, а уже потом разбиваю на подстроки для переноса в код причем, всегда без строк продолжение. но с пробелом перед очередной подстрокой Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 15:01 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАanton6, выложите пример базы Вас же просят. Ванговать же не все умеют ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 15:33 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА всегда без строк продолжение. но с пробелом перед очередной подстрокой И я, именно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 15:51 |
|
Запрос через несколько таблиц
|
|||
---|---|---|---|
#18+
anton6Все...все перегуглил... нашел синтаксис для vba через одну таблицу запрос сделал, через две никак... Подскажите, пожалуйста, где неточности Это работает Код: sql 1. 2. 3. 4. 5.
А это уже нет... Код: sql 1. 2. 3. 4. 5. 6.
И так и так скобки ставил... не получается... прошу помочь Скорее поверю, что работает второй запрос, а первый нет. В первом нет пробела перед WHERE. Код: vbnet 1. 2. 3. 4. 5.
В конце второй и третьей строки пробелы тоже бы не помешали, хотя их отсутствие и компенсируется другими разделителями - ] и ). И еще. Name like 'Вася' смысла не имеет, тогда уж Name = 'Вася'. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 16:01 |
|
|
start [/forum/search_topic.php?author=Castertroy&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 444ms |
total: | 618ms |
0 / 0 |