Объединить две таблицы на основе представления, sql - PullRequest
0 голосов
/ 04 января 2019

У меня следующая ситуация sql

Table1
 id name

Table2
 id name

_Table1ToTable2
 id, id_table1, id_table2

Result:
 id, name, table2_name, table2_id

Я хотел бы объединить Table1 и Table2 в один запрос, но не могу найти способ объединить их, какие-либо идеи?

Ответы [ 3 ]

0 голосов
/ 04 января 2019

Если вы намерены получить набор результатов с каждой возможной комбинацией столбцов идентификаторов из обеих таблиц, то вы можете сделать следующее:

select id = identity (int, 1, 1), * into #a from (select distinct table1. id as id1, table2. id as id2 from table1 cross apply table2) d; select * from #a; drop table #a

Если вы не хотитедля использования временной таблицы альтернативой может быть использование некоторого варианта функции row_number ().

Вышеприведенное решение решает предполагаемое требование, поскольку в вашем вопросе отсутствует контекст.Разработайте ваши требования, и мы сможем предоставить вам более актуальный и подробный ответ.

0 голосов
/ 04 января 2019

Похоже, вы хотите использовать таблицу мостов Table1ToTable2 для объединения Table1 и Table2.Это можно сделать просто с помощью 2 INNER JOIN s:

SELECT
    tt.id AS tt_id,
    t1.id AS t1_id,
    t1.name AS t1_name,
    t2.id AS t2_id,
    t2.name AS t2_name
FROM
    Table1ToTable2 AS tt
    INNER JOIN Table1 AS t1
        ON t1.id = tt.id_table1
    INNER JOIN Table2 AS t2
        ON t2.id = tt.id_table2
0 голосов
/ 04 января 2019

, если нет никакой связи между таблицей 1 и таблицей 2, то

select table1.id, table1.name, table2.id, table2.name from
table1, table2

, если таблица1 и таблица2 связаны с идентификатором,

select  table1.id, table1.name, table2.id, table2.name from
table1
inner join table2
  on table1.id = table2.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...