【问题标题】:using left join returns multiple values使用左连接返回多个值
【发布时间】:2018-11-20 10:45:53
【问题描述】:

我使用了下面的查询,它返回了正确的输出。我想进一步扩展此查询,但我不知道该怎么做。

我有两个表 history_querytb_MA

History_query 表架构

ID     Verantwortlich             Role                           Error_text 
     [Contain UserName]      (Can be User_name Or Catagories)      

15      US1                   10 ENG-PL                           zxcv
7                                US3                              wxyz
10      US3                                                        xyz
20      US2                     07 ROB                            lekd
9                                 US1                              wer
20                            10 ENG-PL                           zlcv

TB_MA Table 架构

UserName              Team             Skills 
 US1               10 ENG-PL
 US2               07 ROB
 US3               10 ENG-PL

在我的访问表单中,我有一个组合框,用户可以在其中选择“10 ENG-PL”之类的类别。

基于此值首先,我想从 TB_MA 中找到有多少用户,而不是从 history_query 中找到用户名存在于“Verantwortlich”列或“角色”列中或存在“10 类别”的所有数据ENG-PL'

根据上表数据

最终输出我需要什么

ID   Verantwortlich             Role                           Error_text 

15      US1                   10 ENG-PL                           zxcv
7                                US3                              wxyz
10      US3                                                        xyz
9                                US1                               wer
20                            10 ENG-PL                           zlcv

我使用的查询是

SELECT *
FROM history_query  left JOIN tb_MA ON history_query.Role =  tb_MA.Team 
WHERE (((history_query.verantwortlich) IN (Select [MA-Kennung] from tb_MA 
where team = '10  ENG-PL')))

根据我上面的查询,它会返回以下输出

ID   Verantwortlich             Role                           Error_text 

15      US1                   10 ENG-PL                           zxcv
10      US3                                                        xyz

提供一些我可以学习此类查询的链接。我一直卡在这类问题上。

【问题讨论】:

    标签: sql database ms-access join


    【解决方案1】:

    我通过以下查询找到了答案。

    SELECT *
    FROM history_query LEFT JOIN tb_MA ON history_query.verantwortlich =  tb_MA.Team
    WHERE ( ((history_query.verantwortlich) IN (Select [MA-Kennung] from tb_MA where team = '10  ENG-PL') ) 
    OR history_query.Role ='10  ENG-PL' OR   ((history_query.Role) IN (Select [MA-Kennung] from 
    tb_MA where team = '10  ENG-PL') ) );
    

    欢迎任何其他建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多