を問い合わせますクエリ?は、データベース・スキーマを考慮
-1
A
答えて
0
あなたは、任意の非Apple製品を購入していない顧客を見つけるためにLEFT JOIN/NULL
パターンを使用することができます。それでは、ジョインだけですべてを行うことができます。 Supply
とParts
に2回、アップル製品を探すために1回、アップル以外の製品をもう一度除外する必要があります。
SELECT distinct c.name, c.province
FROM Customer AS c
JOIN Supply AS s1 ON s1.cid = c.cid
JOIN Parts AS p1 ON p1.pid = s1.pid
LEFT JOIN Supply AS s2 ON s2.cid = c.cid
LEFT JOIN Parts AS p2 ON p2.pid = s2.pid AND p2.producer != 'Apple'
WHERE p1.producer = 'Apple' AND p2.pid IS NULL
LEFT JOIN
にあなたがON
句、ないWHERE
句で第二のテーブルの制限を置くことに注意してください。クエリのこの部分の詳細については、Return row only if value doesn't existを参照してください。
0
アップル製品を買っただけの顧客がほしいですか?
一つの可能な解決策は、条件付き集計に基づいています。
Select c.cname, c.Province
From Customer c
join
(-- this is not a Subquery, it's a Derived Table
Select s.CId -- assuming there's a CId in Supply
from Supply s
join Part p
on p.pId = s.pId
group by s.CId
-- when there's any other supplier this will return 1
having max(case when p.Producer = 'Apple' then 0 else 1 end) = 0
) as p
on p.CId = c.CId
関連する問題
- 1. QUERY_STRINGクエリは考慮
- 2. スキーマ比較 - 参照プロジェクトを考慮する方法
- 3. デザインの考慮
- 4. パフォーマンスの考慮 - C#
- 5. 選択考慮サブセット
- 6. JWTアクセストークンセキュリティの考慮
- 7. アーキテクチャの考慮点
- 8. マージンを考慮したパッチ
- 9. MySQLは、このテーブルを考慮
- 10. symfonyはこの次のサービスクラスを考慮
- 11. マルチスレッドでのメモリの考慮
- 12. RDBMS(MySQL)からSolrに移動するときのスキーマの考慮
- 13. nHibernateとデータベースへのアクセス方法は、パラメータは型/サイズを考慮しますか?
- 14. Javaカスタムアノテーションは考慮されません
- 15. の違いは考慮して
- 16. ブーストASIO&SSL&エラーコードこのコードを考慮
- 17. R - lubridate - 、次の点を考慮
- 18. フィールドデリミタを考慮しないHive 'Load'コマンド
- 19. C#コールバック時間を考慮するタイマー
- 20. 亜音速トランザクションエラー次のコードを考慮
- 21. フレックスを考慮するブートストラップカラムのプロパティ
- 22. 古いキーを考慮したGuavaキャッシュ
- 23. ジャンゴ1.8:クラスとプロキシを考慮ModelAdminの
- 24. 個数を考慮したカウント行
- 25. graphviz 'ダイクストラツールエッジウェイトを考慮しない
- 26. キャプチャグループを考慮したJavaパターン分割
- 27. アレイを考慮しないエラーメッセージ
- 28. カスタムクロージャーベクトルの重複を考慮する
- 29. ジャンゴ更新フィールドベースは、スキーマを考える
- 30. Oracleの監査証跡は、スキーマの下の表(学生)を考慮して、最後のトランザクション
あなたの質問は私にはうまく見えます。なぜそれを書き直したいのですか? – Rahul