首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL select和compare

SQL select和compare
EN

Stack Overflow用户
提问于 2017-08-03 15:00:55
回答 2查看 47关注 0票数 1

我正在尝试从client.id不等于bond.client且绑定client.bond不等于bond.id的客户端和绑定表中检索所有内容。我的查询没有起作用,而是返回了整个列表。我该如何解决这个问题?我的查询希望从客户端表中输出4,5,并从债券表中输出5,5作为结果

客户端表

代码语言:javascript
复制
Id    Bond

1     2

2     3

4     5

键合表

代码语言:javascript
复制
Id    Client

2   1

3   2

5   5

代码语言:javascript
复制
SELECT * FROM `client_table` 
 INNER JOIN `bond_table` 
where client_table.id != bond_table.client and client_table.bond != bond_table.id
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-03 16:21:00

请尝试以下操作:

代码语言:javascript
复制
SELECT c.ClientID, c.BondID from client_table c
left join bond_table b
on c.clientID = b.clientID
where b.clientID is null
UNION 
SELECT b.ClientID, b.BondID from bond_table b
left join client_table c
on c.clientID = b.clientID
where c.clientID is null
票数 0
EN

Stack Overflow用户

发布于 2017-08-03 15:13:45

可以使用not in子句

代码语言:javascript
复制
  SELECT * FROM `client_table` 
  INNER JOIN `bond_table` on client_table.id  
      not in  ( select bond_table.client  from bond)
          AND client_table.bond not in ( select bond_table.id from bond)

但是根据您在注释中显示的结果,您应该使用OR (而不是AND)

代码语言:javascript
复制
  SELECT * FROM `client_table` 
  INNER JOIN `bond_table` on client_table.id  
      not in  ( select bond_table.client  from bond)
          OR client_table.bond not in ( select bond_table.id from bond)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45477050

复制
相关文章

相似问题

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