簡體   English   中英

mysql 一對多反連接查詢

[英]mysql one-to-many anti join query

尋求有關此情況查詢的幫助:

我有 3 張桌子。 鞋桌是鞋款的獨特集合。 色表是一款獨特的colors系列鞋款。 shoe_color 表是一個連接表。 一只鞋 model 可以有多個 colors 或只有一個。

我想查詢不包含特定顏色的鞋款。 例如... Shoe 1有 colors black , red , white Shoe 2有 colors blackwhite Shoe 3有 colors blackwhite 不包含red的查詢應返回以下行: Shoe 2Shoe 3

任何幫助表示贊賞,請提出任何問題以進行澄清!

你可以使用not exists

假設連接表通過它們的主鍵(比如color_idshoe_id )引用其他表,並且表color中的列color_name存儲顏色名稱,您將 go:

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'
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM