barnyard9 Asked: 2023-10-31 16:00:35 +0800 CST2023-10-31 16:00:35 +0800 CST 2023-10-31 16:00:35 +0800 CST 查找 B 的行中没有 is_true='Y' 的所有 C.id? 772 有两个表C和B。 它们通过 相连C.id=B.cid。 我需要找到所有C.ides 所在位置: 没有对应的行cid有is_true='Y' 我尝试过各种查询,但无法理解其中任何一个。这是我的想法之一。 select * from C inner join B on C.id=B.cid where -- loop all rows of B using B.cid -- output if the row has is_true!='Y' mysql 2 个回答 Voted Best Answer Akina 2023-10-31T16:31:20+08:002023-10-31T16:31:20+08:00 SELECT c.id FROM c WHERE NOT EXISTS ( SELECT NULL FROM b WHERE b.cid = c.id AND is_true='Y' ) ID 2 5 小提琴 J.D. 2023-10-31T20:32:37+08:002023-10-31T20:32:37+08:00 由于您要寻找的只是关键字段,C.id即B.cid,那么您可以简单地使用如下GROUP BY子句来实现您的目标: SELECT cid FROM B GROUP BY cid HAVING MAX(is_true) = 'N' 简化示例dbfiddle进行演示。
小提琴
由于您要寻找的只是关键字段,
C.id
即B.cid
,那么您可以简单地使用如下GROUP BY
子句来实现您的目标:简化示例dbfiddle进行演示。