2013-05-30 80 views
0

因此,我试图在查询它们时将3个表加入1列。MySQL - 3个不同的表,在列中加入相同的列

这三个表

investigators.nameancientones.namemonsters.name

我习惯叫回所有名称查询是

SELECT investigators.name ,ancientones.name ,monsters.name FROM investigators, ancientones, monsters WHERE ((investigators.name LIKE'a%') OR (ancientones.name LIKE'a%')OR (monsters.name LIKE'a%'))

但是这将返回与“名”与表1,2和3 我值3级表中的行要在一列中的所有值,但我没有那么多的SQL经验..

+0

奇怪的标签,顺便说一下。即使目标是将您的查询用于ajax自动填充,您的问题与此无关。 –

回答

1

你需要使用UNION(或UNION ALL继续重复)

SELECT name 
FROM investigators 
WHERE name like 'a%' 
UNION 
SELECT name 
FROM anientones 
WHERE name like 'a%' 
UNION 
SELECT name 
FROM monsters 
WHERE name like 'a%' 
+0

谢谢,这个伎俩! – Azylak

0

尝试使用列名之间的'+'

SELECT investigators.name + ' ' + ancientones.name + ' ' + monsters.name FROM investigators, ancientones, monsters WHERE ((investigators.name LIKE'a%') OR (ancientones.name LIKE'a%')OR (monsters.name LIKE'a%')) 
相关问题