私はテーブル[売り手]、[広告]、[売却]を持っています。where joinはnullがあり、count()= 0の可能性がありますか?
私の会社の仕組みが変わっているため、売り手の売り手を別の売り手に変更することができます(孤児の売り手と呼ばせてください)。しかし、[sale]テーブルが更新され、新しい売り手。
私は孤児の売上が唯一のユーザーの孤立した販売の価格を数えたいと思います。
価格を払う前に、孤立した売り上げしかなかったユーザーのリストを作成しているようにも見えません。
私はどこにnullがあるので、私は売り上げのない広告を得ることができる左の結合をしようとしています。
SELECT seller.id
FROM seller
JOIN advert ON advert.seller_id = seller.id
JOIN sale orphan ON advert.id = orphan.advert_id
JOIN sale accomplished_sale ON advert.id = accomplished_sale.advert_id
WHERE orphan.id IS NULL
GROUP BY seller.id
HAVING count(accomplished_sale.id) = 0
しかし、私が得意とするのは、売り上げのない売り上げが少なくとも1つある売り手が、売り上げのある他の広告を持っていることです。
広告販売の関係がn-> 1であるとすれば、通常の結合は左結合であると思いますか?同じことが売り手 - 広告で起こります。
私は間違っていますか?何か案は?あなたはそれ等を呼び出す必要があり、左を必要とする1つ(またはそれ以上)のテーブルに参加する場合は
SELECT seller.id
FROM seller, sale, advert
WHERE advert.seller_id = seller.id
AND advert.id = sale.advert_id
AND sale.id IS NULL
GROUP BY seller.id
HAVING count(accomplished_sale.id) = 0
@MichaelMcGriffはい、デカルト結合です。それを変更しました。 –