2015-04-29 2 views
0

Как присоединиться к двум таблицам, которые имеют все те же заголовки столбцов, но один?Соедините 2 таблицы со всеми одинаковыми заголовками столбцов, но один из них

Остальные 3 колонки все же тогда одна таблица имеет заголовок столбца «январь», а другая таблица имеет заголовок столбца «Февраль»

Так что я хотел бы, чтобы в конечном итоге с 5 полных столбцов в новый table

Мне также нужны все данные, даже если есть дубликаты. Прежде чем я использовал союз, но теперь я не могу этого сделать, потому что не все мои заголовки одинаковы.

Спасибо!

ответ

0

Вы можете использовать UNION и переименовать одну из ваших колонок:

SELECT id, name, age, xxx FROM table1 
UNION 
SELECT id, name, age, yyy AS xxx FROM table2 

Если добавить больше информации, я могу разработать свой ответ

0
select tb1.col1, tb1.col2, tb1.col3, tb2.col3 from tb1 
inner join tb2 on (tb1.col1 = tb2.col1) 
0

Предполагая, что уникальность, когда только принимая во внимание три колонны, присоединение их

SELECT tab1.col1, 
     tab1.col2, 
     tab1.col3, 
     tab1.january, 
     tab2.february 
FROM tab1, 
     tab2 
WHERE tab1.col1 = tab2.col1 
     AND tab1.col2 = tab2.col2 
     AND tab1.col3 = tab2.col3 
0

Это предполагает, что все строки в tblA имеют соответствующие значения в tbl B, и наоборот:

SELECT * FROM tblA INNER JOIN tblB USING (col1, col2, col3); 

Если это не так, и в зависимости от данных (если tbl1. january может иметь законные значения NULL, это не будет работать), вы можете попробовать что-то вроде (не проверял точно, возможно, потребуется массируют с скобкой, subselecting и т.д ...):

SELECT * 
FROM tbl1 
LEFT JOIN tbl2 USING (col1, col2, col3) 
UNION ALL 
SELECT * FROM tbl2 LEFT JOIN tbl1 USING (col1, col2, col3) 
HAVING tbl1.`january` IS NULL 
; 
Смежные вопросы