【发布时间】:2019-10-01 11:19:12
【问题描述】:
我需要一些帮助来解决一个问题。
我正在使用 SQL 开发一个 microsoft 数据库,并且我有一个与此类似的表:
|*Name*|*Permissions*|
|App1 |Permission 1 |
|App1 |Permission 2 |
|App1 |Permission 3 |
|App2 |Permission 1 |
|App2 |Permission 2 |
|App2 |Permission 3 |
所以这是一个 m 对 n 的关系,因为有多个权限分配给一个应用程序,但也有多个应用程序使用相同的权限。
我已经尝试过像这样使用 distinct 加入表格的方法:
select distinct apps1.name, apps2.permissions from Apps apps1
join Apps apps2
where apps2.name IN
(SELECT distinct name from Apps);
但它没有得到我正在寻找的结果。
我希望得到如下所示的结果:
|*Name*|*Permission1*|*Permission2*|*Permission3*|
|App1 |Permission 1 |Permission 2 |Permission 3 |
|App2 |Permission 1 |Permission 2 |Permission 3 |
有可能,应用程序获得了不同数量的权限,但如果是这样,这些空列用 NULL 值填充就可以了。
我希望你能帮助我。 如果需要任何进一步的信息,请写信给我。由于我是 StackOverflow 的新手,所以我不是写下问题的专业人士。
【问题讨论】:
标签: sql tsql many-to-many multiple-columns