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

推薦する

RR および RC 分離レベルでのインデックスとロックのテスト スクリプトのサンプル コード

基本概念現在の読み取りとスナップショットの読み取りMVCC では、読み取り操作はスナップショット読み...

JavaScript でモバイル モーダル ボックスの効果を実現

この記事では、モバイルモーダルボックス効果を実現するためのJavaScriptの具体的なコードを参考...

さまざまなMySQLインデックスの使用方法の詳細な説明

1. 遅いクエリログ1.1 MySQL ログの種類ログは、データベースの操作や、ユーザーがデータベー...

Tomcat をサービスとして登録する際に注意すべき点のまとめ

Tomcat をサービスとして登録する場合の注意点は次のとおりです。 インターフェースを開いたら、以...

JSX を使用してカルーセル コンポーネントを実装する方法 (フロントエンドのコンポーネント化)

JSX を使用してコンポーネント システムを構築する前に、例を使用してコンポーネントの実装原理とロ...

DockerでMySQLコンテナを作成する簡単な手順

序文すでに Docker をインストールしており、Docker について簡単に理解しています。ここで...

Q&A: XML と HTML の違い

Q: xml と html の違いがわかりません。違いは何ですか? A: XMLと HTML の違い...

JSON.stringify の簡易版の実装とその 6 つの主要機能の詳細な説明

目次序文JSON.stringify の 6 つの機能特集1特集2特集3特集4特集5特集6手動で文字...

Windows 10 に付属する仮想マシンのネットワークを設定するための詳細な手順 (グラフィック チュートリアル)

1. サーバー ホストをクリックし、右側の操作リストで [仮想スイッチ管理] をクリックして、仮想...

CSS3のtext-fill-colorプロパティの詳細な説明

text-fill-color とは何を意味しますか?文字通りの意味から言えば、「テキストの塗りつぶ...

Linux サーバーのグラフィック カードのクラッシュの解決策

ログインインターフェースの解像度が特に大きい場合、グラフィカルインターフェース全体が特に大きくなり、...

MySQL IDは1から増加し始め、不連続IDの問題を素早く解決します

mysql idは1から始まり、不連続なidの問題を解決するために自動的に増加します。強迫性障害の私...

jQueryで大画面スクロール再生効果を実現

この記事では、大画面スクロール効果を実現するためのjQueryの具体的なコードを参考までに紹介します...