0

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

有以下表格:

tbl工作组计划

  1. 工作组 ID
  2. 节目编号

工作组

  1. 工作组 ID
  2. 工作组名称

tbl用户

  1. 用户身份
  2. 工作组 ID

tbl用户程序

  1. 用户身份
  2. 节目编号

要求是找到所有那些 Workgroup 名称不是 '%Insight%' 但 ProgrammeID 等于 59 的用户 ID,因为 ProgrammeID 59 必须只分配给那些 Workgroup 为 '%Insight%' 的用户</p>

一直在尝试所有可能的连接和子查询,但无法得到它。所以,任何帮助,在正确的方向上都会有很大的用处

4

2 回答 2

1

在这里,试试这个。

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
于 2012-09-04T22:57:35.807 回答
0

这是我想出的答案:

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%')
于 2012-09-06T10:07:46.630 回答