带有子查询或联接的SQL查询

带有子查询或联接的SQL查询,sql,join,subquery,Sql,Join,Subquery,我需要一些关于如何编写查询的指导 下表如下: TBL工作组计划 工作组ID 节目编号 TBL工作组 工作组ID 工作组名 特布卢瑟 用户ID 工作组ID tblUserProgramme 用户ID 编程 要求查找其工作组名称与“%Insight%”不同但ProgrammeID等于59的所有用户id,如下所示: 只能将ProgrammeID 59分配给其工作组为“%Insight%”的用户 一直在尝试所有可能的连接和子查询,但无法获得。因此,任何方向正确的帮助都会非常有用。这里,试试这个 SELE

我需要一些关于如何编写查询的指导

下表如下:

TBL工作组计划

  • 工作组ID
  • 节目编号
  • TBL工作组

  • 工作组ID
  • 工作组名
  • 特布卢瑟

  • 用户ID
  • 工作组ID
  • tblUserProgramme

  • 用户ID
  • 编程
  • 要求查找其工作组名称与“%Insight%”不同但ProgrammeID等于59的所有用户id,如下所示: 只能将ProgrammeID 59分配给其工作组为“%Insight%”的用户

    一直在尝试所有可能的连接和子查询,但无法获得。因此,任何方向正确的帮助都会非常有用。这里,试试这个

    SELECT      a.UserID
    FROM        tblUser a
                    INNER JOIN tblWorkGroupProgramme b
                        ON a.WorkgroupID = b.WorkGroupID
                    INNER JOIN tblUserProgramme c
                        ON c.ProgrammeID = b.ProgrammeID
                    INNER JOIN tblWorkGroup d
                        ON b.WorkGroupID = d.WorkGroupID
    WHERE       NOT (d.WorkGroupName LIKE '%Insight%') AND
                c.ProgrammeID = 59
    

    这就是我得出的答案:

    select a.UserID, c.WorkGroupName
    from dbo.tblUserProgramme a 
    where a.ProgrammeID = 59 AND 
    a.UserID  IN (SELECT UserID  FROM tblUser a WHERE a.WorkGroupID IN
    (SELECT WorkGroupID FROM tblWorkGroup
    WHERE WorkGroupName like '%Insight%')
    

    无论何时你尝试了什么,把你尝试过的东西贴出来!