バックル-2つのテーブル(データベースの問題)を組み合わせる

1601 ワード

データベースは、2つ以上のテーブルを接続してレコードを返すと、中間のテンポラリ・テーブルを生成し、ユーザーに返します.left jionを使用する場合、onとwhereの条件の違いは次のとおりです.
1、on条件は、テンポラリ・テーブルを生成する際に使用される条件であり、onの条件が真であるかどうかにかかわらず、左のテーブルのレコードが返されます.
2、where条件は、テンポラリテーブルが生成された後、テンポラリテーブルをフィルタリングする条件です.このときleft joinの意味はなくなり(左の表の記録に戻らなければならない)、条件が本当でなければすべてフィルタリングされます.
via: https://www.cnblogs.com/toSeeMyDream/p/6843984.html
 
 
表1:  Person
+-------------+---------+
|            |        |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+
PersonId      

表2:  Address
+-------------+---------+
|            |       |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+
AddressId      

 
SQLクエリーを作成し、条件を満たします.personにアドレス情報があるかどうかにかかわらず、上記の2つのテーブルに基づいて提供する必要があります. Personの次の情報:
 
FirstName, LastName, City, State

# Write your MySQL query statement below
SELECT Person.FirstName,Person.LastName, Address.City, Address.State FROM Person LEFT JOIN Address ON Person.PersonId=Address.PersonId;

 
転載先:https://www.cnblogs.com/JAYPARK/p/10324672.html