我正在尝试从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发布于 2017-08-03 16:21:00
请尝试以下操作:
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发布于 2017-08-03 15:13:45
可以使用not in子句
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)
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)https://stackoverflow.com/questions/45477050
复制相似问题