首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql -从一个表中选择另一个表中不存在的记录

sql -从一个表中选择另一个表中不存在的记录
EN

Stack Overflow用户
提问于 2017-05-31 01:11:30
回答 6查看 74关注 0票数 0

我试图从表“用户”中选择“俱乐部”中不存在的所有记录。然而,这句话仍然显示了表格“俱乐部”中存在的一些记录。

表:用户

代码语言:javascript
复制
ID, Name, Registration_Date
***************************
3, Mark, 5/1/2017
7, Paul, 5/2/2017
8, John, 5/3/2017

表:俱乐部

代码语言:javascript
复制
************
User_ID, Club_Name
  3, Chicago
  3, Texas
  7, Miami
  7, San Antonio

这是SQL语句:

代码语言:javascript
复制
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

这就是我得到的结果

代码语言:javascript
复制
8, John
3, Mark

由于某种原因,ID 3的用户仍然在显示,它存在于"clubs“表中。

任何帮助都是非常感谢的。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-05-31 02:23:18

这就是詹姆斯提出的解决问题的办法:

检查"3“记录的id字段在两个表中是否有额外的空间(或类似的空间),这可能导致其不正确匹配。我已经在本地重新创建了这个DB,并且这个查询对我是有效的。-

问题是列状态中有一个空格。

我添加了这个评论,因为正确的答案是作为评论提供的,并且没有找到任何其他的选项来接受这个评论作为正确的答案。

票数 1
EN

Stack Overflow用户

发布于 2017-05-31 01:28:05

它读起来像英语:从User.Id不在俱乐部的用户中选择。以下是查询:

代码语言:javascript
复制
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

更多关于在算子中的信息。

票数 2
EN

Stack Overflow用户

发布于 2017-05-31 01:29:37

尝尝这个

代码语言:javascript
复制
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] DESC
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44274153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档