根据另一个表中的比较条件选择实体

时间:2019-02-28 22:54:02

标签: mysql sql

我有两个桌子。这些不是它们,而是相同的原理:

Table:One (artists)
--------------
id (Primary Key)
name
best genre

Table:Two (artist teams)
-------------
id1 (Foreign Key)
id2 (Foreign Key)

我想选择喜欢的类型相同的艺术家团队。

到目前为止,我的工作是

SELECT *
FROM Two INNER JOIN One
WHERE ( ).

我对放在WHERE语句中的内容感到困惑。 我不知道如何将艺术家流派的价值相互比较!

pseudo code for WHERE:
retrieve id#1's favourite genre 
retrieve id#2's favourite genre
compare them
if equal display the related entity from table Two

我已经搜索了一段时间,正在寻找解决方案,但找不到任何东西 就像这样,我认为这可能是一种我可能会错过的语法。 感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您需要多次加入“艺术家”表:

select t.*, a1.genre
from teams t join
     artists a1
     on t.id1 = a1.id join
     artists a2
     on t.id2 = a2.id and a2.genre = a1.genre;