假设我有以下表格:
Name | Occupation
A
B
C
D
E
Workplace | Phone Number
A
B
C
我想执行一个select将表合并到一个表中:
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
输出似乎是第二列中的所有“人物”,并且没有“工作场所”。我做错了什么?
或者在某种程度上我可以做一些事情,比如从单个SELECT语句中获取以下内容:
MyName
A_Person
B_Person
C_Person
D_Person
E_Person
A_Workplace
B_Workplace
C_Workplace
注意:我正在使用MySQL Workbench
答案 0 :(得分:1)
我无法让sqlfiddle接受您的查询,但确实接受了这一点:
SELECT Name, 'Person' FROM tablea
UNION
SELECT Workplace, 'Workplace' FROM tableb
答案 1 :(得分:0)
使用UNION ALL
代替UNION
:
SELECT Name, @a FROM tablea
UNION ALL
SELECT Workplace, @b FROM tableb
UNION删除重复项(在大多数数据库中也会删除结果)。
UNION ALL按所选顺序保留所有行。