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 背景色のグラデーション

推薦する

MySQL の集計関数 count の使用法とパフォーマンスの最適化テクニック

この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...

httpsウェブサイトにリファラーhttpsとhttpジャンプリファラーを送信させる方法

この記事では、HTTP プロトコルのリファラーのメタデータ パラメータの提案について説明します。この...

alpineをベースにdockerfileで作成したtomcatイメージの実装

1.アルパインイメージをダウンロードする [root@docker43 ~]# docker pul...

VMware 仮想化 KVM のインストールと展開のチュートリアルの概要

仮想化1. 環境セントオス7.3 selinuxとファイアウォールを無効にする2. 仮想化環境の構成...

React Routerの歴史について簡単に説明します

React Router を理解したいなら、まず歴史を理解する必要があります。より具体的には、Rea...

MySQLクエリで大文字と小文字を区別しない問題を解決する方法

質問最近、SSH フレームワークを使用して実用的なプロジェクトを完了していたときに、長い間悩まされて...

CSS3で背景画像にカラーマスクを追加する方法

以前、開発中に背景レイヤーにカラーマスクを追加する必要のあるプロジェクトに遭遇しました。ここでは、背...

Vue の高度なコンポーネント機能コンポーネントの使用シナリオとソースコード分析

目次導入使用シナリオソースコード分析要約する導入Vue は、コンポーネントをステートレスかつインスタ...

Postman に基づく HTTP インターフェース テスト プロセスの分析

偶然、素晴らしい人工知能のチュートリアルを発見したので、みんなと共有せずにはいられませんでした。この...

Vue ElementUI で Excel ファイルを手動でサーバーにアップロードする方法の詳細な説明

目次概要プロパティ設定処理ロジック概要具体的な需要シナリオは次のとおりです。 Excel ファイルを...

ウェブサイトのハイパーリンクを開く方法に関する議論

新しいウィンドウが開きます。 利点: ユーザーがリンクをクリックしても、現在閲覧しているコンテンツは...

SQL効率を分析する方法を説明する

Explain コマンドは、データベースのパフォーマンス問題を解決するために最初に推奨されるコマンド...

CSSファイルをインポートする3つの方法の詳細な説明

CSS を導入する方法には、インライン スタイル、内部スタイル シート、外部スタイル シートの 3 ...

HTML における画像タグの使用方法の詳細な説明

HTML では、<img> タグはテキスト内の画像タグを定義するために使用されます。その...

Windows 上で Nginx+Tomcat クラスタを実装するプロセスの分析

導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...