2013-07-30 84 views
5

我有不同的表具有相同的结构,我想通过他们的列之一加入他们。SQL加入两个表无关

问题是他们不共享该列中的信息。

Table 1 - Type A: 

Name | Value 

Table 2 - Type B: 

Name | Value 

结果表:

(在单柱)

nameFromA 

nameFromB 
... 

到目前为止,我曾尝试:

SELECT TABLE1.NAME, TABLE2.NAME 
FROM TABLE1, TABLE2 
WHERE TABLE1.NAME = 'SearchQuery' 
OR TABLE2.NAME = 'SearchQuery' LIMIT 2; 

我知道我的查询是错误的,因为我打电话给我想要的更多专栏,但我不确定如何将所有内容加入到单个专栏中。我怎样才能做到这一点?

+2

我们展示您的数据! –

+0

感谢您的回复。你究竟需要什么?我的数据库已经建好。它有21个表,每个30列。 –

回答

6

你试过了吗?

SELECT TABLE1.NAME 
FROM TABLE1 
WHERE TABLE1.NAME = 'SearchQuery' 

UNION 

SELECT TABLE2.NAME 
FROM TABLE2 
WHERE TABLE2.NAME = 'SearchQuery'; 

您可能需要使用UNION ALL如果你不想排除重复的值。

要限制你的结果集,你可以做这样的事情:

SELECT * FROM (HERE GOES ABOVE QUERY) LIMIT 2; 
+0

也许'ALL',我只是不能把'UNION'和'ALL'放在我的帖子中,因为防火墙......( –

+0

@GoatCO是的,如果他想要重复的值。 – letiagoalves

+0

完美谢谢! –

0

的问题是,他们不同意该列中的信息。

如果他们不同意你想要加入的列的任何信息,联接是meaningless.


一个简单的加入应该是这样的:

SELECT Name FROM Table1 t1 
JOIN Table2 ON (t1.Name=t2.Name)