join语法:表与表关联
join 用于多表中字段之间的联系
JOIN 按照功能大致分为如下三类:
INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。
LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。
RIGHT JOIN(右连接):与 LEFT JOIN 相反,取得右表(table2)完全记录,即是左表(table1)并无匹配对应记录。
注意:mysql不支持Full join,不过可以通过UNION 关键字来合并 LEFT JOIN 与 RIGHT JOIN来模拟FULL
练习:
先创建2个表
create table testa(aid int,aname varchar(100));
create table testb(bid int,bname varchar(100),age int);
insert into testa values(1,‘America’);
insert into testa values(2,‘China’);
insert into testa values(3,‘Japan’);
insert into testa values(4,‘British’);
insert into testa values(5,‘India’);
insert into testb values(1,‘Australia’,15);
insert into testb values(2,‘Korea’,16);
insert into testb values(3,‘Japan’,17);
insert into testb values(4,‘India’,18);
insert into testb values(7,‘Europe’,19);
insert into testb values(8,‘Russia’,20);
insert into testb values(9,‘Germany’,21);
单字段匹配连接
(1)左连接:以左表数据为主且最全,右表去匹配(on后面的字段)左表,匹配不到就显示null
left join,(或left outer join:在Mysql中两者等价,推荐使用left join.)左连接从左表(A)产生一套完整的记录,与匹配的记录(右表(B)) .如果没有匹配,右侧将包含null。
select
a.aid,a.aname,
b.bid,b.bname
from
testa a left join testb b on a.aid=b.bid;