+ Ответить в теме
Показано с 1 по 2 из 2

Тема: Left Join по двум полям

  1. #1
    senior developer Dr_Grizzly is on a distinguished road
    Регистрация
    13.09.2004
    Адрес
    Курган
    Возраст
    33
    Сообщений
    406
    Вес репутации
    15

    По умолчанию Left Join по двум полям

    Добрый день! Помогите разобраться в чем косяк.... Есть две таблицы, я создаю две виртуальные таблицы по каждой физической в которых есть 2 ключевых поля. По отдельности запрос выдает данные из двух виртуальных таблиц без проблем. Т.е. данные в них есть. Теперь хочу объединить эти две таблицы в одну, связав их по двум ключевым полям.

    Код :
    1.  
    2. create view tab1 as select name,clas,Count(ochag.regnomer) as kolvo from ochag
    3. group by clas,name
    4.  
    5. create view tab2 as select name,clas, sum(ples) as ples, sum(verh) as verh, sum(pneles) as pneles, sum(pnoles) as pnoles from ochag, fire where ochag.key=fire.ochagkey
    6. group by clas,name
    7.  
    8. Select * from tab1 left join tab2 on tab1.name=tab2.name and tab1.clas=tab2.clas

    И тут получаю данные только для левой таблицы и колонки для правой, но с пустыми значениями. Меняю Left на Right и все наоборот получается....

    P.S. запросы на Access SQL
    Последний раз редактировалось Dr_Grizzly; 05.06.2012 в 05:27.
    Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    senior developer Dr_Grizzly is on a distinguished road
    Регистрация
    13.09.2004
    Адрес
    Курган
    Возраст
    33
    Сообщений
    406
    Вес репутации
    15

    По умолчанию Re: Left Join по двум полям

    Вспомнил про свой метод через построитель запросов в самом Аксесе )) И результат стал интересным
    Сначала запустил свои запросы по отдельности. И в запросе с Tab2 обнаружил ошибку цикличности по полю ples. Переназвал его. Запрос запустился. Хотя из приложения Дельфы - этот запрос без всяких косяков срабатывал.
    Затем взял эти две таблицы - бросил в построитель, создал связь по двум полям и получил SQL код

    SELECT tab1.*, tab2.*
    FROM tab1 left JOIN tab2 ON (tab1.clas = tab2.clas) AND (tab1.name = tab2.name);

    Получилось, что построитель поменял местами в условии поля....
    Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD

+ Ответить в теме

Похожие темы

  1. Left join несколько таблиц
    Добрый день! Пытаюсь соединить несколько таблиц методом left join, а мне ругается ADO на ошибку в синтаксисе select * from table1 left join...
    от Dr_Grizzly в разделе SQL
  2. Access. LEFT JOIN. Как поместить поле в запись.
    Добрый день! Спасибо!
    от skleppi в разделе MS Office и VB(A).
  3. Выборка по двум полям со списком. Помогите начинающему!
    Нужно выбрать ПолеСо Списком1 (номер недели) затем ПСС2 (группа), чтобы выводилось расписание группы на заданной неделе. Помогите пожалуйста!!! Очень...
    от Studentto4ka в разделе MS Office и VB(A).
  4. Left Join в Excell
    Потскажите, может есть стандартный способ решения данной проблемы? К примеру, есть Таблица1. # Название Код количество 1 Булка 1001 ...
    от Pomuk в разделе MS Office и VB(A).

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения