LeetCode の SQL 実装 (183. 注文をしたことがない顧客)

LeetCode の SQL 実装 (183. 注文をしたことがない顧客)

[LeetCode] 183.注文しない顧客

Web サイトに、Customers テーブルと Orders テーブルという 2 つのテーブルが含まれているとします。何も注文したことのないすべての顧客を検索する SQL クエリを記述します。

表: 顧客。

+----+-------+
| ID | 名前 |
+----+-------+
| 1 | ジョー |
| 2 | ヘンリー |
| 3 | サム |
| 4 | 最大 |
+----+-------+

表: 注文。

+----+-------------+
| ID | 顧客 ID |
+----+-------------+
| 1 | 3 |
| 2 | 1 |
+----+-------------+

上記の表を例として、以下を返します。

+-----------+
| 顧客 |
+-----------+
| ヘンリー |
| マックス |
+-----------+

この質問では、Customers テーブルと Orders テーブルが提供されます。注文したことのない顧客を見つけましょう。最も直接的な方法は、次に示すように、Not in キーワードを使用して、Orders テーブルに表示されない顧客 ID を見つけることです。

解決策1:

顧客から顧客として名前を選択 
WHERE Id NOT IN (SELECT CustomerId FROM Orders);

または、左結合を使用して 2 つのテーブルを結合することもできます。右側の CustomerId が Null である顧客 (つまり注文を行っていない顧客) を見つける必要があります。

解決策2:

顧客から顧客として名前を選択
LEFT JOIN Orders ON Customers.Id = Orders.CustomerId
Orders.CustomerId が NULL の場合;

Not in と同様に機能する Not exists キーワードを使用することもできます。次のコードを参照してください。

解決策3:

顧客から顧客として名前を選択 c
存在しない場合 (SELECT * FROM Orders o WHERE o.CustomerId = c.Id);

参考文献:

https://leetcode.com/discuss/22624/three-accepted-solutions

https://leetcode.com/discuss/53213/a-solution-using-not-in-and-another-one-using-left-join

これで、LeetCode の SQL 実装に関する記事は終了です (182. 注文したことがないお客様)。注文したことがないお客様の SQL 実装に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • LeetCode の SQL 実装 (196. 重複するメールボックスを削除する)
  • SQL 実装 LeetCode (185. 部門内で最も給与の高い上位 3 名)
  • LeetCode の SQL 実装 (184. 部門内で最も高い給与)
  • LeetCode の SQL 実装 (182. 重複するメールボックス)
  • LeetCode の SQL 実装 (181. 従業員は管理職よりも収入が高い)
  • SQLはLeetCodeを実装します(180.連続した数字)
  • LeetCode の C++ 実装 (組み合わせの最大数は 179)
  • LeetCode の SQL 実装 (197. 気温上昇)

<<:  ウェブページのカラーマッチングにおけるオーバーラップとソフトカラーマッチングの手法を詳しく説明

>>:  HTMLポップアップ透明レイヤーインスタンスのサイズを設定でき、比例することができます

推薦する

Facebookの情報アーキテクチャの分析

<br />原文: http://uicom.net/blog/?p=762 Faceb...

Linux で ARM 開発ボード用のファイルシステムを作成する

1. Busyboxのソースコードをオンラインでダウンロードしてください。コンパイル方法については、...

Dockerコミットの使い方の詳しい説明

場合によっては、ベースイメージに特定の依存関係をインストールする必要があります。Dockerfile...

ウェブページの背景画像を伸ばす2つの方法

解決策は2つあります。 1つはCSSで、background-size:coverを使用して画像の伸...

LeetCode の SQL 実装 (177. 給与が N 番目に高い)

[LeetCode] 177. 最も高い給与従業員テーブルからn番目に高い給与を取得する SQL ...

K8Sの5つのコントローラーの紹介と使用

目次k8sのコントローラータイプポッドとコントローラの関係デプロイメント(ステートレスアプリケーショ...

Angularの親子コンポーネント通信の詳細な説明

目次概要1. 入力および出力プロパティの概要2. 入力属性3. プロパティバインディングは親コンポー...

優れたWebフォームデザイン事例20選

ソフィー・ハルダッククライドキー埠頭 37 東ソープボックス Rxバランス EEハーバー対比 SVN...

node.js で Web サーバーを作成する手順の詳細な説明

序文node.js でサーバーを作成するのは非常に簡単です。小さいながらも完全な Web サーバーを...

docker.service 起動エラーの詳細なトラブルシューティング

エラーを報告するには次のコマンドを実行しますsystemctl dockerを再起動しますエラーメッ...

Docker で MySQL を起動したときに SQL 文を自動的に実行する方法

Docker で MySQL コンテナを作成する場合、コンテナの起動後にデータベースとテーブルが自動...

CentOSはexpectを使用してスクリプトやコマンドをバッチでリモート実行します

サーバーへのファイルのアップロード、ソフトウェアのインストール、コマンドやスクリプトの実行、サービス...

Zabbixを介してデータベース接続情報といくつかの拡張機能をすばやく取得します

背景アプリケーション システムの数が増え続けると、当初はアラームを発していなかったアクティブ スレッ...

タオバオモールのホームページ上の大きな画像のデザイン構造に関する分析と意見(写真)

前回、Taobaoの詳細ページを分析した後(クリックして表示)、ショッピングモールの基本テンプレート...

CSS フロントエンドの知識ポイントのまとめ(必読)

1. CSS の概念: (カスケーディング スタイル シート)利点: 1. コンテンツとプレゼンテ...