2012-04-08 179 views
3

我在我的mysql中有兩個表我想提取基於兩個表的組合查詢的結果。我想加盟,以及內部連接,但沒有成功mysql query join/inner join

TABLEA的結構

id userid topic 

1  34  love 
3  64  friendship 
35 574  romance 
32 253  games 
95 633  football 
54 26  cricket 
648 63  music 

tableB的是

id location  username 
34  Australia krkrff 
64  india  dieiei 
574  pakistan  frkfrf 
253  japan  frfffrk 
633  india  ifirf 
26  Australia riiri 
63  Australia frffjrr 

請注意,在表A的用戶ID和TableB中的id是相同的。無論是反映同一用戶的數據。我想通過過濾來自tableB的位置列來顯示tableA數據。假設我想顯示tableB的話題和用戶屬於澳大利亞那麼它應該給輸出:愛 板球 音樂

可以TableB中看到,34,26 & 63屬於澳大利亞這樣的輸出就是這樣。如果位置是印度,那麼結果將是

友誼和football.please告訴如何編寫sql查詢。

回答

7

下應該選擇你描述:

select a.topic 
from tableA a 
join tableB b on b.id = a.userid 
where b.location = 'Australia' -- or whichever location you filter on 

這相當於:

select a.topic 
from tableA a 
join tableB b on b.id = a.userid and b.location = 'Australia' 
+0

工作就像魅力 – Steeve 2012-04-08 04:50:55

+0

@保羅Bellora,多少聯接可以在一個MySQL查詢使用? – 2016-07-26 06:22:49

1
SELECT a.topic, b.topic FROM tableA a, tableB b WHERE a.id = b.id AND b.location = 'Australia' 
1

能否請您闡述一下您的意思是「TableA的用戶名和在什麼表B的ID是相同的「,因爲它們是可見的不同的,所以我們不能將它們用作關鍵字。

據我所知,然而,你會prolly想做一個JOIN,然後選擇只爲主題。

所以,您的查詢應該是:

SELECT t1.topic from table1 t1 JOIN tableB t2 on t2.id = t1.id WHERE t2.location = 'Australia' 
+0

對於tableA中的userid和tableB中的id,列名是不同的,但值相同。只需檢查tableA userid值出現在tableB id列中,以便它們可以用作關鍵字 – Steeve 2012-04-08 04:32:58

1

試試這個:

SELECT tableA.topic FROM tableA JOIN tableB 
ON tableA.userid = tableB.id 
WHERE tableB.location = 'Australia';