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ポップアップ透明レイヤーインスタンスのサイズを設定でき、比例することができます

推薦する

MySQL 圧縮の使用シナリオとソリューション

導入圧縮トランスポート プロトコル、圧縮列ソリューション、圧縮テーブル ソリューションなど、MySQ...

Vue で棒グラフを使用し、自分で設定を変更する方法

1. HTMLファイルでechartをインポートする <!-- echarts をインポート ...

JavaScriptはシンプルな計算機能を実装します

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

MySQLの論理アーキテクチャに関する深い理解

MySQL は現在、ほとんどの企業や事業体で使用されているデータベースです。MySQL が使用される...

jsはカスタムドロップダウンボックスを実装します

この記事の例では、カスタムドロップダウンボックスを実装するためのjsの具体的なコードを参考までに共有...

MySQL 8の新機能におけるグローバルパラメータの永続性の詳細な説明

目次序文グローバルパラメータの永続性最後に要約する参考資料:序文2018 年に MySQL 8.0....

Elasticsearch を使用する際の一般的な問題の解決策

1. redis で使用すると Netty の起動競合が発生するため、***Application ...

ubuntu20.04 上の CLion2020.1.3 での ROS のインストールと設定の詳細な説明

1. CLionをダウンロード、インストール、アクティベートするオンラインで提供されるチュートリアル...

ウィンドウ内のさまざまな距離/スクロール距離の正確な計算の概要

通常、プロジェクト開発では、マージン、位置、座標などを扱う必要があります。悲劇なのは、これらの概念が...

iframe の src を about:blank に設定した後の詳細

iframe の src を 'about:blank' に設定した後、"...

デザイン理論:フォントデザインの基礎

<br />言葉は、人間の思考や感情を伝えるために必然的に生み出されるものです。人類の文...

JavaScript 配列 sort() メソッドの基本的な使い方と落とし穴

序文日常のコード開発では、配列のソートに関連する操作が多数あります。JavaScript では、so...

SNMP4J サーバー接続タイムアウト問題の解決策

弊社のネットワーク管理センターは管理センター兼サーバーとして機能します!各管理対象デバイスは、TCP...

MySQLの7種類のログの概要

MySQL には次のログ ファイルがあります。 1: 再実行ログ2: ロールバックログ(元に戻すログ...

VMware 構成 VMnet8 ネットワーク方法の手順

目次1. はじめに2. 設定手順1. はじめに1. NAT モード (VMnet8) は、仮想マシン...