0

假设我有以下表格:

Name | Occupation
A
B
C
D
E
Workplace | Phone Number
A
B
C

我想执行选择以将表合并到一个表中:

MyName | Type
A | Person
B | Person
C | Person
D | Person
E | Person
A | Workplace
B | Workplace
C | Workplace

我该如何做到这一点?我试过了:

SET @a = 'Person'
SET @b = 'Name'
SELECT Name, @a FROM tablea
UNION
SELECT Workplace, @b FROM tableb

并且第二列中的输出似乎都是“Person”,并且没有“Workplace”。我究竟做错了什么?

或者有没有办法我可以从单个 SELECT 语句中获取以下内容:

MyName
A_Person 
B_Person 
C_Person 
D_Person 
E_Person 
A_Workplace
B_Workplace
C_Workplace

注意:我正在使用 MySQL Workbench

4

2 回答 2

1

我无法让sqlfiddle接受您的查询,但它确实接受了这个:

SELECT Name, 'Person' FROM tablea
UNION
SELECT Workplace, 'Workplace' FROM tableb
于 2013-02-01T23:53:16.550 回答
0

使用UNION ALL代替UNION

SELECT Name, @a FROM tablea
UNION ALL
SELECT Workplace, @b FROM tableb

UNION 删除重复项(并且在大多数数据库中也对结果进行排序)。

UNION ALL 使所有行保持选定的顺序。

于 2013-02-02T00:05:43.630 回答