2013-07-30 13 views
5

olmadan iki tablo katılın SQL, ve ben onların sütunlardan biri tarafından onlara katılmak istiyorum. aynı yapıyla farklı tablolar İlişkiler

sorun

onlar o sütundaki bilgileri paylaşmak kalmamasıdır.

Table 1 - Type A: 

Name | Value 

Table 2 - Type B: 

Name | Value 

Ortaya tablosu:

(tek bir sütunda)

nameFromA 

nameFromB 
... 

Şimdiye kadar, ben denedim:

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

benim sorgu yanlış olduğunu biliyoruz çünkü ben 'istediğimi fazla sütun bu ismi ama tek bir sütunda her şeyi katılmak için nasıl emin değilim. Bunu nasıl başarabilirim?

+2

bize veri göstermek! –

+0

Cevabınız için teşekkür ederiz. Tam olarak neye ihtiyacınız var? Veritabanım zaten oluşturuldu. Her biri 30 sütun ile 21 tablo var. –

cevap

6

sen denediniz mi?

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

UNION 

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

Sen tekrarlanan değerleri hariç istemiyorsanız UNION ALL kullanmak isteyebilirsiniz.

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

Muhtemelen 'ALL' de, ben sadece onun değerleri tekrarlanan olsun isterse :( –

+0

@GoatCO evet. Ne demek ... güvenlik duvarını nedeniyle Mesajlarımdaki' yan yana Sendikası'nın ve 'ALL' koyamazsınız sizin güvenlik duvarı ile? – letiagoalves

+0

mükemmel. teşekkürler! –

0

sorun onlar o sütundaki bilgileri paylaşmak kalmamasıdır:

böyle bir şey yapabilirsiniz set sonucunuzu sınırlamak için.

onlar katılmak istediğiniz sütunda HERHANGİ bilgi paylaşımı yoksa, bir katılmak meaningless.


olan basit şu şekilde görünecektir katılmak:

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