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インデックスの使用に関するヒントと注意事項

1. インデックスの役割一般的なアプリケーション システムでは、読み取りと書き込みの比率は約 10:...

HTML の POST リクエストにおける a タグの 2 つの使用法の分析

HTML POST リクエストで a タグを使用する 2 つの例を次に示します。 1. ajaxを使...

vue+antv でレーダーチャートを実装するためのサンプルコード

1. 依存関係をダウンロードするnpm インストール @antv/データセットnpm インストール ...

vue-video-player でのブレークポイント再開の実装

最近のプロジェクトでは、ブレークポイントからビデオの再生を再開する機能を実装する必要がありました。こ...

セマンティックウェブページ XHTML セマンティックマークアップ

構造とプレゼンテーションを分離するもう 1 つの重要な側面は、セマンティック マークアップを使用して...

Nginx セッション損失問題の解決策

nginx をリバース プロキシ tomcat として使用する場合、セッション損失が発生する可能性が...

JS ES6コーディング標準の詳細な説明

目次1. ブロックスコープ1.1. let は var を置き換える1.2. グローバル定数とスレッ...

Linuxシステムの操作レベルの詳細な紹介

目次1. Linuxシステムの操作レベルの概要2. 実行レベルを確認する3. 現在のシステムの動作レ...

Web ページ WB.ExecWB 制御印刷メソッド呼び出しの説明とパラメータの紹介

WebページWB.ExecWB制御印刷方法コードをコピーコードは次のとおりです。 <テーブルの...

ショッピングカートのスライド削除効果を実装するReactネイティブサンプルコード

基本的にすべてのeコマースプロジェクトにはショッピングカートの機能があります。これはreact-na...

素晴らしい CSS ナビゲーション バーの下線効果

中国初のカッター github.com/chokcocoまず、ここに画像があります。純粋な CSS ...

数千万件のレコードをMySQLに素早く挿入する方法に関する実践的なチュートリアル

1. データベースを作成する 2. テーブルを作成する1. deptテーブルを作成する テーブル「d...

MySQL ストアド プロシージャの原理と使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...

クリックイメージ反転効果を実現するJavaScript

最近、顔コレクションに関するプロジェクトに取り組んでいましたが、フロントエンドモジュールを書いている...

WeChatミニプログラムが星評価を実装

この記事では、WeChatアプレットで星評価を実装するための具体的なコードを参考までに紹介します。具...