2013-03-30 4 views
2

Пример:Объединение 2 наборов результатов colums из запроса тузд в один

Первый запрос:

select A,B,C from tb1;

--------------- 
A  B  C 
--------------- 
1  1  3 
2  1  4 

Второй запрос:

select E from tb2;

--------------- 
E  
--------------- 
8  
9 

Требуемый формат результат должен быть таким: -

----------------------- 
A  B  C  E 
----------------------- 
1  1  3  8 
2  1  4  9 

Пожалуйста скажите мне запрос, как получить набор результатов.

+1

Покажите некоторые идеи, которые вы пробовали. – hd1

+1

Нет никакой связи между этими двумя? – hjpotter92

+0

Думайте, что они не связаны между двумя таблицами, просто нужно добавить два столбца набора результатов в один результирующий набор. – Bharath

ответ

0

, чтобы сделать ваши таблицы лучше структурированными, если вы можете добавить в обе таблицы идентификатор столбца, чтобы идентифицировать номер строки каждой таблицы.

то вы можете легко объединить две таблицы, которые имеют одинаковый идентификатор. отношение здесь - столбец id.

, то вы можете сделать это

select A, B, C , E from Table1 t1 
inner join Table2 t2 
on t1.id = t2.id 

см структурированные таблицы в этом DEMO HERE

РЕЗУЛЬТАТ:

A B C E 
    1 1 3 8 
    2 1 4 9 

надеюсь, что это поможет вам!

0

SQL-таблицы по своей сути неупорядочены. Это создает проблему, потому что в вашей таблице нет ничего, чтобы указать порядок строк, который, как представляется, является связью между двумя таблицами.

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

Следующий код добавляет id к каждой таблице. Этот идентификатор может быть использован для объединения:

select t1.A, t1.B, t1.C, t2.D 
from (select t1.*, @rn := @rn + 1 as id 
     from tbl1 t1 cross join (select @rn := 0) 
    ) t1 left outer join 
    (select t2.*, @rn := @rn + 1 as id 
     from tbl2 t2 cross join (select @rn := 0) 
    ) t2 
    on t1.id = t2.id 
0

Привет, может быть, это поможет вам

вы можете попробовать, как этот

SELECT * FROM tb1,tb2 

И вы получите выход как

----------------------- 
A  B  C  E 
----------------------- 
1  1  3  8 
2  1  4  9 
+0

realy ??, попробуйте сами в sqlfiddle –

+0

Да, я тестировал в своем локальном, и я получил все данные из обеих таблиц. – 2013-03-30 13:00:59

+0

Посмотрите сами http://sqlfiddle.com/#!2/85c0a/30 –

Смежные вопросы