2014-03-04 28 views
-1

我有一個mysql數據庫,有兩個表A和B.表A有一個出現在第1列中的每個值,但表B有多個出現的每個值。事情是這樣的:如何做一個兩個表sql select

表A

alpha zeta 
+-------------+ 
| abc | blah | 
+-------------+ 

表B

alpha beta 
+----------------+ 
| abc | blah-1 | 
| abc | blah-2 | 
| abc | blah-3 | 
| abc | blah-4 | 
| abc | blah-5 | 
+----------------+ 

我需要的是一個查詢,其中,如果有兩個字母列的匹配(A.alpha = B. alpha)兩行的所有值都返回結果中,例如然而,如果至少存在一個如上所述的匹配,但是表B中的'abc'行比表A中的多,則結果行應該包含每個'abc'的數據,排在表B和含有表A.單「ABC」比賽

因此,對於上述結果的兩個錶行是這樣的:

A.alpha A.zeta B.alpha B.zeta 
+---------------------------------+ 
| abc | blah | abc | blah-1 | 
| abc | blah | abc | blah-2 | 
| abc | blah | abc | blah-3 | 
| abc | blah | abc | blah-4 | 
| abc | blah | abc | blah-5 | 
+---------------------------------+ 

當然ABC和不只有alpha列中的值。

我花了很多時間試圖弄清楚這一點,並希望得到任何幫助。

+0

您花時間編寫/花式格式化此問題的時間量,我敢打賭,如果您在Google上花費了1/10的時間,您會得到問題的答案。 –

+0

大部分時間(大約2小時)我花在Google和Mysql文檔站點上,試圖找到答案。如果這還不夠,我向你道歉。 –

回答

1
SELECT A.Alpha 
     ,A.Zeta 
     ,B.Alpha 
     ,B.Zeta 
FROM TABLEA A INNER JOIN TABLEB B 
ON A.alpha = B.alpha 
+1

謝謝@ToonKrijthe甚至沒有通知:) –

1

這在SQL書的任何介紹中都有說明,並且是一個簡單的連接。

SELECT * 
FROM TableA 
JOIN TableB ON TableA.Alpha = TableB.Alpha 

這裏沒有魔法。

+0

這個答案也可以,但不是第一次。謝謝 –