1. 左联结(left join)
联结结果保留左表的全部数据,需要通过某个属性连接两个表。若左表未能与右表进行连接,在查询结果中任然会保留左表的信息,但相应连接属性会为null。
如力扣中该题
https://leetcode-cn.com/problems/combine-two-tables/
create database tmp;use tmp;create table Person (PersonId int primary key,FirstName varchar(20) ,LastName varchar(20));INSERT INTO `tmp`.`Person` (`PersonId`, `FirstName`, `LastName`) VALUES ('1', '张', '三');INSERT INTO `tmp`.`Person` (`PersonId`, `FirstName`, `LastName`) VALUES ('2', '李', '四');INSERT INTO `tmp`.`Person` (`PersonId`, `FirstName`, `LastName`) VALUES ('3', '王', '五');INSERT INTO `tmp`.`Person` (`PersonId`, `FirstName`, `LastName`) VALUES ('4', '赵', '六');create table Address(AddressId int primary key ,PersonId int ,City varchar(20) ,State varchar(20));INSERT INTO `tmp`.`Address` (`AddressId`, `PersonId`, `City`, `State`) VALUES ('1', '1', '北京', '在线');INSERT INTO `tmp`.`Address` (`AddressId`, `PersonId`, `City`, `State`) VALUES ('2', '2', '上海', '在线');INSERT INTO `tmp`.`Address` (`AddressId`, `PersonId`, `City`, `State`) VALUES ('3', '3', '深圳', '在线');
select FirstName, LastName, City, Statefrom Person left join Addresson Person.PersonId = Address.PersonId;
2.右联结(right join)
联结结果保留右表的全部数据
3.内联结(inner join)
取两表的公共数据

