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

推薦する

Linux で crond ツールを使用してスケジュールされたタスクを作成する方法

序文Crond は Linux のスケジュール実行ツール (Windows のスケジュールされたタス...

MySQLの3値ロジックとNULLの詳細な説明

目次NULLとは何か2種類のNULLなぜ「= NULL」ではなく「IS NULL」と書く必要があるの...

iptables の再起動後に Docker の iptables ルールの完全なプロセスが失われる

原因と結果1. ansibleコマンドを使用してジャンプサーバー上のマシンBをテストすると、次のエラ...

ユーザーのニーズがマーケティング指向のデザインにつながる

<br />それぞれのトピックについて、チーム内でメールで議論します。議論が白熱するにつ...

mysql 基本操作文コマンドの詳細な説明

1. MySQLに接続するフォーマット: mysql -h ホストアドレス -u ユーザー名 -p ...

Linux での Python のアップグレードと pip のインストールの詳細な説明

Linuxバージョンのアップグレード: 1. まず、Linuxオペレーティングシステムに付属するPy...

MySQLは現在の日付と時刻を取得する関数

現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...

Flask アプリケーションの Docker デプロイ実装手順

1. 目的Flask アプリケーションをローカルで作成し、Docker でパッケージ化し、独自のサー...

VMware 15 を使用して仮想マシンをインストールし、CentOS 8 を使用する詳細な手順

序文:現在、Linux と .Net Core を学習しており、クロスプラットフォームの知識を学んで...

MySQLの制限を使用して大規模なページングの問題を解決する方法

序文日常の開発では、MySQL を使用してページングを実装する場合、常に MySQL 制限構文を使用...

Alibaba Cloud Server の詳細な展開 (グラフィック チュートリアル)

最近、Web 開発のフロントエンドとバックエンドの技術を学んだので、その後の管理を容易にするためにプ...

Centos6.9 インストール Mysql5.7.18 ステップ記録

インストール手順 rpm -ivh mysql-コミュニティ-共通-5.7.18-1.el7.x86...

VirtualBox CentOS7.7.1908 Python3.8 ビルド Scrapy 開発環境 [グラフィックチュートリアル]

目次環境CentOSをインストールするyum 国内ミラーソースを構成するサードパーティの依存関係をイ...

HTML/XHTML における img 画像タグの基本的な使用法の詳細な説明

画像タグは、Web ページに画像を表示するために使用されます。 HTML/XHTML 画像 <...

よく忘れられがちな CSS のヒント 26 選

これは、よく使われるけれども忘れられがちな CSS 実装方法のコレクションです。抜けや追加があれば、...