Arhn - архитектура программирования

Соедините два разных столбца из двух разных таблиц

у меня есть две временные таблицы Таблица 1

 ID1         Name        ID2            Single
----------------------------------------------------
 1            ABC         1            100
 2            DEF         1            200

Таблица 2

 ID1         Name        ID2           Monthly
----------------------------------------------------
 3            PQR         2            500
 4            LMN         2            600

Я хочу, чтобы выход

 ID1         Name        ID2            Single   Monthly
--------------------------------------------------------
 1            ABC         1            100        NULL
 2            DEF         1            200        NULL
 3            PQR         2            NULL       500
 4            LMN         2            NULL       600

Я использовал все соединения, ничего не работает, спасибо заранее

14.12.2011

  • Пожалуйста, посмотрите на предварительный просмотр при написании вопроса. Первоначальное форматирование, сделанное по этому вопросу, очень сложно выделить отдельные части, и таблицы были плохо отформатированы (они все еще не отформатированы, но я попробую еще раз отредактировать в ближайшее время). 14.12.2011

Ответы:


1

JOIN в этом случае не работает, здесь нужно использовать UNION:

SELECT ID1, NAME, ID2, Single, NULL FROM Table1
UNION ALL
SELECT ID1, NAME, ID2, NULL, Monthly FROM Table2
14.12.2011

2

На всякий случай, по какой-то безумной причине, вам действительно нужно это как JOIN, а не (как указывали другие) как UNION ALL:

create table #T1 (ID1 int,Name varchar(10),ID2 int,Single int)
insert into #T1 (ID1 ,        Name  ,      ID2    ,        Single)
select 1            ,'ABC',         1  ,          100 union all
select 2            ,'DEF',         1   ,         200

create table #T2 (ID1 int,Name varchar(10),ID2 int,Monthly int)
insert into #T2 (ID1 ,        Name  ,      ID2    ,        Monthly)
select 3            ,'PQR',         2   ,         500 union all
select 4            ,'LMN',         2   ,         600

select COALESCE(t1.ID1,t2.ID1) as ID1,COALESCE(t1.Name,t2.Name) as Name,
COALESCE(t1.ID2,T2.ID2) as ID2,t1.Single,t2.Monthly
from #T1 t1 full outer join #T2 t2 on 1=0

Дает результат, который вы просили

14.12.2011

3

Вам не нужен JOINS, вам нужен СОЮЗ (ВСЕ).

ОБЪЕДИНЕНИЕ (Transact-SQL)

Объединяет результаты двух или более запросов в один результирующий набор, включающий все строки, принадлежащие всем запросам в объединении. Операция UNION отличается от использования объединений, объединяющих столбцы из двух таблиц.

Выражение SQL

SELECT ID1, Name, ID2, Single, NULL as Monthly
FROM   Table1
UNION ALL
SELECT ID1, Name, ID2, Null, Monthly
FROM   Table2
14.12.2011

4

попробуй использовать СОЮЗ

SELECT * FROM Single
UNION
SELECT * FROM Monthly

Надеюсь это поможет.

14.12.2011
  • Это не соответствует желаемому результату, поскольку он будет иметь только один столбец и будет включать месячные значения в этом столбце (и может исключать значения между двумя таблицами, когда это не должно, поскольку вы использовали UNION, а не UNION ALL ) 14.12.2011

  • 5

    Пожалуйста, используйте следующий запрос...

    Выберите ID1, Name, ID2, Single, NULL AS 'Ежемесячно'

    из таблицы 1

    Союз

    Выберите ID1, Имя, ID2, NULL AS 'Single', Ежемесячно

    из Таблицы2

    14.12.2011
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..