SQL选择和比较

时间:2017-08-03 07:00:55

标签: mysql database phpmyadmin

我试图从客户端和债券表中检索一切,其中client.id不等于bond.client和债券client.bond不等于bond.id.我的查询不起作用,而是返回整个列表。我怎么解决这个问题?我的查询想要从客户端表输出4,5,从结果表输出5,5作为结果

客户表

Id    Bond

1     2

2     3

4     5

债券表

Id    Client

2   1

3   2

5   5

SELECT * FROM `client_table` 
 INNER JOIN `bond_table` 
where client_table.id != bond_table.client and client_table.bond != bond_table.id

2 个答案:

答案 0 :(得分:0)

可能在子句

中没有使用
  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)

但是根据你在评论中显示的resukt你应该使用OR(而不是AND)

  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)

答案 1 :(得分:0)

请试试这个:

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