我试图从表“用户”中选择“俱乐部”中不存在的所有记录。然而,这句话仍然显示了表格“俱乐部”中存在的一些记录。
表:用户
ID, Name, Registration_Date
***************************
3, Mark, 5/1/2017
7, Paul, 5/2/2017
8, John, 5/3/2017表:俱乐部
************
User_ID, Club_Name
3, Chicago
3, Texas
7, Miami
7, San Antonio这是SQL语句:
SELECT
[Users].[ID],
[Users].[Name]
FROM
[Users]
LEFT JOIN
[Clubs]
ON
[Users].[ID] = [Clubs].[User_ID]
WHERE
[Clubs].[User_ID] IS NULL AND
[Users].[Status] = 'Active' AND
[Users].[Gender] = 'Female'
GROUP BY
[Users].[ID],
[Users].[Name]
ORDER BY
[Users].[ID] DESC这就是我得到的结果
8, John
3, Mark由于某种原因,ID 3的用户仍然在显示,它存在于"clubs“表中。
任何帮助都是非常感谢的。
发布于 2017-05-31 02:23:18
这就是詹姆斯提出的解决问题的办法:
检查"3“记录的id字段在两个表中是否有额外的空间(或类似的空间),这可能导致其不正确匹配。我已经在本地重新创建了这个DB,并且这个查询对我是有效的。-
问题是列状态中有一个空格。
我添加了这个评论,因为正确的答案是作为评论提供的,并且没有找到任何其他的选项来接受这个评论作为正确的答案。
发布于 2017-05-31 01:28:05
它读起来像英语:从User.Id不在俱乐部的用户中选择。以下是查询:
SELECT
[Users].[ID],
[Users].[Name]
FROM
[Users]
WHERE
[Users].[Status] = 'Active' AND
[Users].[Gender] = 'Female' AND
[Users].[ID] not in (select UserID from Clubs)
ORDER BY
[Users].[ID] DESC更多关于在算子中的信息。
发布于 2017-05-31 01:29:37
尝尝这个
SELECT
[Users].[ID],
[Users].[Name]
FROM
[Users]
WHERE
[Users].[ID] NOT IN (SELECT [Clubs].[User_ID] FROM [Clubs]) AND
[Users].[Status] = 'Active' AND
[Users].[Gender] = 'Female'
GROUP BY
[Users].[ID],
[Users].[Name]
ORDER BY
[Users].[ID] DESChttps://stackoverflow.com/questions/44274153
复制相似问题