2013-08-02 4 views
1

Я хочу объединить две таблицы2 в одной таблице.MySQL объединяет два столбца с тремя столбцами

Я попытался использовать союз в MySQL, но это не удалось.

Моя кодирование:

Select id,name; 
union all 
select id, name,sex; 

Образец данных:

Table_1

ID, Name 
-------- 
1 JJ 
3 PP 

Таблица 2

ID, Name, Sex 
------------- 
33 A  M 
22 B  F 

Результат, что потребности я должен выглядеть следующим образом:

ID, Name, Sex, 
1 JJ 
3 PP 
33 A  M 
22 B  F 

Можем ли мы сделать это в процедуре магазина mysql?

+0

Что теоретическое определение UNION ALL говорит? – cjava

ответ

0

Количество столбцов и их типы из двух результирующих наборов в сочетании с UNION [ALL] должно быть одинаковым. Это, как говорится попробовать

SELECT id, name, NULL sex 
    FROM Table1 
UNION ALL 
SELECT id, name, sex 
    FROM Table2 

Выход:

 
| ID | NAME | SEX | 
---------------------- 
| 1 | JJ | (null) | 
| 3 | PP | (null) | 
| 33 | A |  M | 
| 22 | B |  F | 

Вот SQLFiddle демо

Дальнейшее чтение

Можем ли мы сделать это в процедуре магазина mysql?

Да, вы можете, если вам нужно.

+0

Помогло ли это? Вам нужна дополнительная помощь по вашему вопросу? – peterm

0

При использовании оператора UNION в операторе sql две комбинированные таблицы (результирующие наборы) должны иметь одинаковые числа и типы столбцов. В противном случае утверждение не будет выполнено, так как сервер не может решить , как объединить две таблицы. Так что вам нужно, чтобы искусственно создать третий столбец для Фристой таблицы, так что ее набор столбцов соответствует thse во второй таблице:

SELECT id,name,'' AS sex FROM Table_1 UNION SELECT id, name, sex FROM Table_2 
Смежные вопросы