我有一个包含用户信息的表,一个包含客户信息的表和一个包含FTP信息的表。我需要连接所有三个表,然后选择FTP表中与User表中所有活动用户匹配的记录。客户端表和用户表包含客户端ID,客户端名称具有相应的名称。我需要SQL查询的最终结果来提供客户端名称,用户名和FTP目录。
客户
ClientCode
ClientName
Status
UsersAdminSFTDirectory
IndexNo
UserName REFERENCES Users(UserName)
AccessDir
UsersAdmin
us_ID
UserName
Status
ClientCode
这是我到目前为止所拥有的。非常感谢任何帮助。
SELECT C.ClientName,
UASD.username,
UA.emailaddress
FROM (
SELECT DISTINCT userName FROM UsersAdminSFTDirectory
) AS UASD
JOIN UsersAdmin AS UA ON UASD.username = UA.username
JOIN Clients AS C ON UA.clientCode = C.clientCode
WHERE c.ClientName LIKE '%'
答案 0 :(得分:0)
根据您的描述,我认为以下查询会产生您想要的内容。请注意,如果用户有多个FTP站点,则每个用户将有多行。
Select u.UserName,
u.EmailAddress,
c.ClientName,
UASD.AccessDir
From UsersAdmin As u
Join Clients As c On u.ClientCode = c.ClientCode
Join (Select Distinct UserName, AccessDir From UsersAdminSFTDirectory) As UASD
On u.UserName = UASD.UserName;
您还提到了用户表中的所有活跃用户'所以你可能想要添加WHERE u.Status = 'Active'
或类似的东西。