LeetCode の SQL 実装 (175. 2 つのテーブルの結合)

LeetCode の SQL 実装 (175. 2 つのテーブルの結合)

[LeetCode] 175.2つのテーブルを結合する

表: 人物

+-------------+----------+
| 列名 | タイプ |
+-------------+----------+
| 個人ID | int |
| 名 | varchar |
| 姓 | varchar |
+-------------+----------+
PersonId はこのテーブルの主キー列です。

表: 住所

+-------------+----------+
| 列名 | タイプ |
+-------------+----------+
| アドレス ID | int |
| 個人ID | int |
| 都市 | varchar |
| 状態 | varchar |
+-------------+----------+
AddressId はこのテーブルの主キー列です。

各人物の住所の有無に関係なく、Person テーブルの各人物について次の情報を提供するレポートの SQL クエリを記述します。

名、姓、市、州

LeetCode にはデータベースに関する質問もあります。やってみましょう。これが最初の質問です。比較的簡単です。2 つのテーブル間の共同検索に関する質問です。結合操作を使用する必要があります。結合操作については、以前のブログ SQL 左結合、右結合、内部結合、自然結合をお読みください。最も直接的な方法は、左結合を使用して 2 つのテーブルを PersonId に従って結合することです。

解決策1:

Person.FirstName、Person.LastName、Address.City、Address.State を Person から選択し、Address を Person.PersonId = Address.PersonId で結合します。

Left Join を使用する場合は、Using キーワードを使用して、結合に使用する列名を宣言することもできます。

解決策2:

Person.FirstName、Person.LastName、Address.City、Address.State を Person から選択し、Address を USING(PersonId) で LEFT JOIN します。

または、Natural キーワードを追加して、特定の列を宣言する必要がなく、MySQL がそれ自体で同じ列を検索できるようにすることもできます。

解決策3:

Person.FirstName、Person.LastName、Address.City、Address.State を SELECT し、Person NATURAL LEFT JOIN Address を実行します。

参考文献:

https://leetcode.com/discuss/21216/its-a-simple-question-of-left-join-my-solution-attached

https://leetcode.com/discuss/53001/comparative-solution-between-left-using-natural-left-join

これで、LeetCode の SQL 実装 (175. 2 つのテーブルを結合) に関するこの記事は終了です。2 つのテーブルを結合するより関連性の高い SQL 実装については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • LeetCode の SQL 実装 (183. 注文をしたことがない顧客)
  • LeetCode の SQL 実装 (182. 重複するメールボックス)
  • LeetCode の SQL 実装 (181. 従業員は管理職よりも収入が高い)
  • SQLはLeetCodeを実装します(180.連続した数字)
  • LeetCode の SQL 実装 (178. スコアランキング)
  • LeetCode の SQL 実装 (177. 給与が N 番目に高い)
  • SQL実装 LeetCode (176. 2番目に高い給与)
  • LeetCode の SQL 実装 (184. 部門内で最も高い給与)

<<:  Dockerイメージの作成、アップロード、プル、デプロイを理解するための記事

>>:  CSS で実現される HTML 背景色のグラデーション

推薦する

Vue2.x および Vue3.x のカスタム命令の使用方法とフック関数の原理を理解する

目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...

Tomcat が localhost に通常アクセスすると 404 を報告する問題の解決方法

今日、プロジェクトのホームページにアクセスするために Tomcat を設定していたところ、404 エ...

Vue2で配列の変更を検出できない理由と解決策

目次回避策Vue2.0 で 2 つの配列の変更を監視できないのはなぜですか?ソースコード分析ヴュー3...

Linux ユーザーとグループのコマンド例分析 [切り替え、ユーザーの追加、権限制御など]

この記事では、Linux のユーザーおよびグループのコマンドについて例を挙げて説明します。ご参考まで...

MySQL 5.7.10 winx64 のインストールと設定方法のグラフィック チュートリアル (win10)

MySQL は比較的使いやすいリレーショナル データベースです。今日は、win10 システムを再イ...

JS の compose 関数と pipe 関数の使い方の詳細な説明

目次作成機能配列プロトタイプの削減Array.prototype.reduceRightパイプ関数作...

MySQL DDL による同期遅延を解決する方法

目次序文解決ツールの紹介仕組み使用制限使用上の注意使用例いくつかのパラメータの説明出力例Tencen...

IE6 ウェブページ作成リファレンス IE6 デフォルトスタイル

これは実際には IE の公式ドキュメントではありません。他の人が実践を通じて開発した IE6 のデフ...

Linux で PHP を 5.6 にアップグレードする実用的な方法

1: ターミナルに入ったらPHPのバージョンを確認する php -v出力は次のようになります。 PH...

MySQL 8.0 をインストールした後、初めてログインするときにパスワードを変更する問題を解決する

MySQL 8.0.16で初回ログイン時のパスワードを変更する方法を紹介します。 MySQLデータベ...

Linux のよく使うコマンドの使い方を詳しく解説(第 2 回)———— テキストエディタのコマンド vi/vim

vi/vim の紹介どちらもマルチモード エディターです。違いは、vim が vi のアップグレー...

Dockerの核となる原則であるCgroupの詳細な説明

カーネル内の強力なツール cgroup は、NameSpace によって分離されたリソースを制限でき...

MySQL ログイン警告問題の解決策

1. はじめにMySQL にログインすると、次のような警告が表示されることがよくあります。警告: コ...

Vue で debouce の手ぶれ補正機能を使用する方法

目次1. 手ぶれ補正機能2. Vueでdebouceの手ぶれ補正機能を使用する1. 手ぶれ補正機能2...

SQLは、隣接する2行のデータに対して加算、減算、乗算、除算の演算を実行します。

SQL は、データを特定の順序で並べ替え、特定のフィールドでグループ化した後、隣接する 2 つのデ...