2013-07-30 7 views
5

同じ構造を持つ異なるテーブルがあり、それらのカラムの1つで結合したいと思います。SQLリレーションを持たない2つのテーブルを結合する

問題は、その列の情報を共有しないことです。

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

返事をありがとう。正確に何が必要ですか?私のデータベースはすでに構築されています。それはそれぞれ30列の21のテーブルを持っています。 –

答えて

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) 
関連する問題