我有2个表都包含track_ids和artist_ids。我想要做的是加入所有track_ids以查看哪个artist_ids与哪个轨道相对应。我想要的结果是,如果我搜索artist_id,它应该返回两个表的结果,换句话说,我需要连接两个表并搜索artist_id。如果找到artist_id,则应返回特定轨道。这个结果也应该是独一无二的。
以下是表格与数据的对比方式
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。
答案 0 :(得分:1)
你可以将两张桌子UNION放在一起。根据定义,UNION运算符返回不同的结果:
SELECT Track_ID
FROM Table1
WHERE Artist_ID = 34
UNION
SELECT Track_ID
FROM Table2
WHERE Artist_ID = 34
答案 1 :(得分: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