首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql一对多反连接查询

问mysql一对多反连接查询
EN

Stack Overflow用户
提问于 2020-08-05 03:19:44
回答 1查看 56关注 0票数 0

查找有关此情况的查询的帮助:

我有三张桌子。鞋桌是一个独特的鞋模集合。颜色表是鞋子可能具有的独特的颜色集合。shoe_color表是一个连接表。一种鞋型可以有多种颜色,也可以只有一种颜色。

我想查询不包含特定颜色的鞋子模型。例如,Shoe 1有black、red、white三种颜色。Shoe 2有black、white等颜色。Shoe 3有black、white等颜色。查询不包含颜色red应该返回行:Shoe 2和Shoe 3。

感谢任何帮助,并请提出任何问题,以澄清!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-05 04:31:13

您可以使用not exists。

假设连接表通过其他表的主键(比如color_id和shoe_id)引用其他表,并且表color中的列color_name存储颜色名称,您可以这样做:

代码语言:javascript
复制
select s.*
from shoe s
where not exists (
    select 1 
    from shoe_color sc 
    inner join color c on c.color_id = sc.color_id
    where sc.shoe_id = s.shoe_id and c.color_name = 'red'
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63253723

复制
相关文章

相似问题

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