根据条件获取元组列表

时间:2013-02-17 18:43:53

标签: mysql sql

我有两个关系

Author (authorId, authorName, country)

PrizeWinner (mAuthId, fAuthId, year)

其中:

fk(mAuthId) -> authorId of Author 
fk(fAuthId) -> authorId of Author

PrizeWinner表包含男女双方的ID,他们在特定年度中获得最佳作者奖。

当男性(mAuthID)和女性作者(fAuthId)来自同一个国家/地区时,我们需要列出所有获奖作者对

对此的任何帮助或线索将受到高度赞赏。 谢谢。

1 个答案:

答案 0 :(得分:1)

SELECT male.*, female.*
FROM 
    PrizeWinner p
        INNER JOIN Author male ON male.authorId = p.mAuthId
        INNER JOIN Author female ON female.authorId = p.fmAuthId
WHERE
    male.country = female.country

关于你的评论,试试这个:

SELECT DISTINCT all.authorName, all.country
FROM 
    PrizeWinner p
        INNER JOIN Author male ON male.authorId = p.mAuthId
        INNER JOIN Author female ON female.authorId = p.fmAuthId
        INNER JOIN Author all ON all.authorId = male.authorId OR all.authorId = female.authorId
WHERE
    male.country = female.country