为什么我的SQL Left Join无法正常工作?

时间:2018-08-17 01:47:26

标签: sql sql-server

我正在尝试执行基本的左联接。 表的结构是:

AGR_USERS:用户(UNAME)-> AGR_NAME(角色)关系-1对多

AGR_AGRS:角色(AGR_NAME)->子角色(CHILD_AGR)关系-一对多

但是结果不准确,因为查询没有为用户(UNAME)识别角色(AGR_NAME)中存在的子角色(CHILD_AGR)。

您能帮我解决这个问题吗?下面是我正在使用的查询。


= 'JAN18'!D32

**** MS-SQL服务器

下面是表格数据

表1:AGR_AGRS(角色-子角色表)

SELECT 
agr_users.UNAME, 
agr_users.AGR_NAME, 
AGR_AGRS.CHILD_AGR, 

FROM AGR_USERS LEFT JOIN AGR_AGRS
ON AGR_AGRS.AGR_NAME=agr_users.AGR_NAME

表2:AGR_USERS(用户-角色表)

AGR_NAME         CHILD_AGR
abc                       x
abc                       y

预期结果:(用户-角色-子角色)

UNAME      AGR_NAME
nik              abc

1 个答案:

答案 0 :(得分:0)

这是一个非常简单的查询。以下应为您提供完整列表:

select u.UNAME
      ,a.AGR_NAME
      ,a.CHILD_AGR
from AGR_USERS as u
    left join AGR_AGRS as a
        on u.AGR_NAME = a.AGR_NAME

如果不是,则您的环境必须与您在问题中的表示方式不同。