Sql 在外部查询中显示嵌套查询结果

Sql 在外部查询中显示嵌套查询结果,sql,nested-queries,Sql,Nested Queries,我有一张表,上面写着MBR\u角色。现在,它将成员id作为键(主约束)。与每个成员id相对应,根据两个指标可以有不同类型的地址。 我有两个指示器,Ind1和Ind2。 所以我的桌子就像- Mbr ID Ind1 Ind2 Country City Postal_code 1 Y N UK London 11111 1 N Y Spain Madrid 22222 1 N N US New York 33333 2 Y

我有一张表,上面写着
MBR\u角色
。现在,它将成员id作为键(主约束)。与每个成员id相对应,根据两个指标可以有不同类型的地址。 我有两个指示器,Ind1和Ind2。 所以我的桌子就像-

Mbr ID  Ind1    Ind2    Country City    Postal_code
1   Y   N   UK  London  11111
1   N   Y   Spain   Madrid  22222
1   N   N   US  New York    33333
2   Y   N   France  Paris   44444
指标1给出居住地址,指标2给出办公地址。我希望每个成员的结果中都包含这两个地址(基于指标)

所以,我的结果应该是-

Mbr ID  Country     City    Postal_code Legal Country    Legal City Legal Postal_code
1   UK  London  11111               Spain          Madrid     22222
2   France  Paris   44444           

关于如何实现这一点有什么帮助吗?

这里有一个可能的解决方案(MySQL)

我使用左外连接来处理地址不存在的情况

select a.Mbr_ID,
       b.Country, b.City, b.Postal_code,
       c.Country as legal_country, c.City as legal_city, c.Postal_code as legal_Postal_code
from (select distinct Mbr_ID from MBR_Role) as a
LEFT OUTER JOIN MBR_Role b ON (b.Mbr_ID = a.Mbr_ID AND b.Ind1 = "Y" AND b.Ind2 = "N"  )
LEFT OUTER JOIN MBR_Role c ON (c.Mbr_ID = a.Mbr_ID AND c.Ind1 = "N" AND c.Ind2 = "Y"  );
它会给你期待的结果。链接到sqlfiddle


不管怎样,就像其他人告诉你的那样,我认为如果可能的话,你应该尝试重新设计你的表。

请将你的问题格式化为readeble格式。你使用的是哪种数据库管理系统?博士后?Oracle?Member_id是主键约束,那么如何在其中包含重复值?如果
Ind1和Ind2
都是
N
,则它指定了哪个地址?我可以建议您规范化表。在表格中添加带有链接字段的表格AddressType表格
select a.Mbr_ID,
       b.Country, b.City, b.Postal_code,
       c.Country as legal_country, c.City as legal_city, c.Postal_code as legal_Postal_code
from (select distinct Mbr_ID from MBR_Role) as a
LEFT OUTER JOIN MBR_Role b ON (b.Mbr_ID = a.Mbr_ID AND b.Ind1 = "Y" AND b.Ind2 = "N"  )
LEFT OUTER JOIN MBR_Role c ON (c.Mbr_ID = a.Mbr_ID AND c.Ind1 = "N" AND c.Ind2 = "Y"  );