[mysql基础文档]-29-inner join内联查询
引言
内联查询就是将一张表的某一列和另一张表的某一列进行比对,找出匹配的字段,最后通过select筛选匹配记录显示。
文章目录
0×1.如何使用inner join内联查询
首先创建两个表A和B,分别保存三个人的名称:
mysql> create table A(aid tinyint primary key default 0,aname char(20) not null default ''); mysql> create table B(bid tinyint primary key default 0,bname char(20) not null default ''); mysql> insert into A values(1,'susam'),(2,'jenny'),(3,'mary'); mysql> insert into B values(2,'tom'),(3,'john'),(4,'george'); mysql> select * from A; +-----+-------+ | aid | aname | +-----+-------+ | 1 | susam | | 2 | jenny | | 3 | mary | +-----+-------+ mysql> select * from B; +-----+--------+ | bid | bname | +-----+--------+ | 2 | tom | | 3 | john | | 4 | george | +-----+--------+
对这两张表进行inner join查询,查找出两表主键列匹配的记录并显示:
--"A inner join B"将A连接到B,on后面指定使用哪一列连接,本例中使用A表的aid连接到B表的bid,数据库会找出这两列中匹配的字段2和3,将这两个字段对应的记录连接起来组成另一张表,对这张表select想取出哪一列就取出哪一列,甚至可以用where筛选结果 mysql> select A.aid,A.aname,B.bid,B.bname -> from -> A inner join B -> on -> A.aid=B.bid; +-----+-------+-----+-------+ | aid | aname | bid | bname | +-----+-------+-----+-------+ | 2 | jenny | 2 | tom | | 3 | mary | 3 | john | +-----+-------+-----+-------+ --如果是显示连接后的整张表,可以直接用下面的语法 mysql> select * from A inner join B on A.aid=B.bid; --使用where对结果集进行筛选 mysql> select * from A inner join B on A.aid=B.bid where aid=2; +-----+-------+-----+-------+ | aid | aname | bid | bname | +-----+-------+-----+-------+ | 2 | jenny | 2 | tom | +-----+-------+-----+-------+
P.s:查询模型有一个很重要的概念,所有查询,子查询或内联查询返回的结果集(表),都可以当做一张全新的表进行再次查询和筛选。