在Mysql中,可以在from关键字后面加入多个表,来一次查询多个表,多个表之间使用逗号来隔开,此外还可以使用where条件子句来指定表与表之间的联合条件。
现在创建一张pet表和owner表,分别代表宠物和它们的主人。
create table pet(id int(11) primary key auto_increment, name char(20), species char(20), owner_id int(11), constraint pet_ibfk_01 foreign key owner_id references owner (id))engine=innodb default charset=gbk;
create table owner(id int(11) primary key auto_increment, name char(20))engine=innodb default charset=gbk;
现在表owner中记录如下
id | name |
1 | zhangsan |
2 | lisi |
表pet中记录如下
id | name | species | owner_id |
1 | lili | cat | 1 |
2 | haha | dog | 2 |
3 | miaomiao | cat | 1 |
检索出姓名为zhangsan的人拥有的宠物数目
select owner.name,count(owner_id) from owner, pet where owner.name='zhangsan' and owner.id=owner_id group by owner_id;
输出结果:
name | owner_id |
zhangsan | 2 |