2013-12-09 71 views
1

我有2個表格都包含track_ids和artist_ids。我想要做的就是加入所有的track_ids,看看哪個artist_ids與哪個track對應。我想要的結果是,如果我搜索artist_id,它應該返回兩個表的結果,換句話說,我需要加入兩個表並搜索artist_id。如果找到artist_id,那麼它應該返回特定的曲目。這個結果也應該是獨一無二的。加入2個表格並根據where子句提取一列

這裏是表如何看待數據

Table1: 
Column names: id [primary key], artist_id, track_id 
Column values: 1, 34, 28 
Column values: 2, 34, 11 
Column values: 3, 34, 33 

Table2: 
Column names: id [primary key], track_id, artist_id, 
Column values: 11, 11, 2 
Column values: 12, 12, 24 
Column values: 13, 13, 2 
的例子

所以上面,如果我找artist_id 34查詢要結合2個表,然後搜索artist_id 34和返回track_ids 28,11 33。

回答

1

你可以只需UNION你的兩張桌子在一起。根據定義,UNION運算符會返回不同的結果:

SELECT Track_ID 
FROM Table1 
WHERE Artist_ID = 34 
UNION 
SELECT Track_ID 
FROM Table2 
WHERE Artist_ID = 34 
0

在你給我們的例子中,沒有必要JOIN這兩個表。你只需要執行:

SELECT * 
    FROM Table2 
WHERE artist_id = 34 

,但如果你需要JOIN他們(的情況下,例如,你需要從Table1額外的字段),它是那樣簡單:

SELECT * 
    FROM Table1 
    JOIN Table2 on Table1.id = Table2.artist_id 
    WHERE Table1.id = 34 
+0

加入的原因是在您的示例中搜索兩個表以找到track_id會完成嗎? –

+0

'Table2'中是否存在'artist_id'而不是'Table1'? –

+0

它可能存在於table1或table2或兩者中 –