mysql查询:根据列值选择相关记录
我很难思考这个场景的查询:
tbl1 和 tbl2 被左连接 我想根据可能存在的多个记录从 tbl2 中选择记录。
tbl2 有 A 列和 B 列。我需要选择其中的记录: A = 0 且 B = 1 或 A = 1 并且不存在 B = 1 的相关记录,
结果应该只有 tblB 中的一条记录——因此直接的“OR”不起作用。该标准基于另一条记录的潜在存在。
I'm having a hard time wrapping my mind around a query for this scenario:
tbl1 and tbl2 are left joined
i want to select the record from tbl2 based on what multiple records may exist.
tbl2 has columns A and B. I need to select the record where:
A = 0 and B = 1 or
A = 1 and no related record where B = 1 exists
the result should only have one record from tblB -- so a straight "OR" doesn't work. the criteria is based on the potential existence of another record.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实上,确实如此。
在 A = 0 且 B = 1 或 A = 1 且 B 为空时左连接 ...
。然后您需要做的是使用distinct
运算符消除重复项。Actually, it does.
left join ... on A = 0 and B = 1 or A = 1 and B is null
. What you then need to do is eliminate the duplicates with thedistinct
operator.