我需要一些关于如何编写查询的指导。
有以下表格:
tblWorkGroupProgramme
tblWorkGroup
tblUser
tblUserProgramme
要求是找到其工作组名称不像'%Insight%'但ProgrammeID等于59的所有用户ID ProgrammeID 59必须仅分配给那些将其工作组作为'%Insight%'
的用户一直在尝试所有可能的连接和子查询,但无法得到它。所以,任何帮助,朝着正确的方向都会有很大的用处
答案 0 :(得分: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
答案 1 :(得分: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%')