【发布时间】:2015-10-05 15:26:08
【问题描述】:
我有三个表(这里是例子)。两个带有数据,一个是用于处理多对多关系的联结表。
用户:
ID | UserName
====================
1 | Jeremy Coulson
2 | Someone Else
存储库:
ID | RepositoryURI
====================
1 | http://something
2 | http://another
RepositoriesUsers:
ID | UserID | RepositoryID
==========================
1 | 1 | 1
2 | 2 | 2
因此,在此示例中,用户 1 与存储库 1 关联。用户 2 与存储库 2 关联。我现在需要通过 Repositories.RepositoryURI 搜索并返回 Users.UserName。
我有这个问题:
select UserName
from RepositoriesUsers
join Users on Users.ID = RepositoriesUsers.UserID
join Repositories on Repositories.RepositoryURI = 'http://another';
但这会返回RepositroriesUsers 表中的每一行。
如何在带有 ID 的联结表与带有人性化文本的其他表之间匹配数据?
【问题讨论】:
-
我知道你在下面有一些很好的答案,但如果你从你正在过滤的桌子开始并一直往下走,它可能对你更有意义。
from Repositories r join RepositoriesUsers ru on r.Id = ru.RepositoryID join Users u on ru.UserId = u.Id where r.RepositoryURI = 'http://another
标签: sql sql-server join junction-table