前言:
而今我们对“两个mysql服务”大体比较注意,朋友们都需要剖析一些“两个mysql服务”的相关文章。那么小编也在网络上汇集了一些有关“两个mysql服务””的相关文章,希望大家能喜欢,各位老铁们快快来了解一下吧!楔子
作为一个程序员,几乎不可避免的要接触到数据库。当前数据库使用最多的非Mysql莫属,提升这方面的能力非常重要。
本系列文章将以实际应用入手,实例解答,介绍和分析各类sql语句。摆脱工具书的生涩难懂。
表1: Person
+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+PersonId 是上表主键
表2: Address
+-------------+---------+| 列名 | 类型 |+-------------+---------+| AddressId | int || PersonId | int || City | varchar || State | varchar |+-------------+---------+AddressId 是上表主键
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
FirstName, LastName, City, State
这个场景考察的是对join的理解。当主表的数据在副表中不存在时,几种join的表现会有何不同。
join 用于多表中字段之间的联系,语法如下:
... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditiona
table1:左表;table2:右表。
JOIN 按照功能大致分为如下三类:
INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。RIGHT JOIN(右连接):与 LEFT JOIN 相反,取得右表(table2)完全记录,即是左表(table1)并无匹配对应记录。
方便理解:
inner join 产生同时符合A和B的一组数据。
left join,(或left outer join:在Mysql中两者等价,推荐使用left join.)左连接从左表(A)产生一套完整的记录,与匹配的记录(右表(B)) .如果没有匹配,右侧将包含null。
right join就和left join相反,由右侧作为主表。
本题的答案及left join (left outer join).
select FirstName, LastName, City, Statefrom Personleft join Addresson Person.PersonId = Address.PersonId;
希望大家能通过这篇文章有所收获,欢迎大家提供意见和建议,我将会在后面的文章中会注意改进。
标签: #两个mysql服务