查找有关此情况的查询的帮助:
我有三张桌子。鞋桌是一个独特的鞋模集合。颜色表是鞋子可能具有的独特的颜色集合。shoe_color表是一个连接表。一种鞋型可以有多种颜色,也可以只有一种颜色。
我想查询不包含特定颜色的鞋子模型。例如,Shoe 1有black、red、white三种颜色。Shoe 2有black、white等颜色。Shoe 3有black、white等颜色。查询不包含颜色red应该返回行:Shoe 2和Shoe 3。
感谢任何帮助,并请提出任何问题,以澄清!
发布于 2020-08-05 04:31:13
您可以使用not exists。
假设连接表通过其他表的主键(比如color_id和shoe_id)引用其他表,并且表color中的列color_name存储颜色名称,您可以这样做:
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'
)https://stackoverflow.com/questions/63253723
复制相似问题