Mysql数据库的基本操作(三)常见连接查询
假设当前存在一个classinfo表
以及一个classgrade表
1.内连接查询
内连接查询结果为笛卡尔积。
例 查询所有相关信息
select classinfo.id,classinfo.name,classinfo.age,classgrade.subject,classgrade.grade from classinfo inner join classgrade on classinfo.name=classgrade.name;
2.左/右 连接查询。
左连接:返回指定左表的全部行+右表对应的行,如果左表中数据在右表中没有与其相匹配的行,则在查询结果集中显示为空值null。
右连接:返回指定右表的全部行+左表对应的行,如果左表中数据在左表中没有与其相匹配的行,则在查询结果集中显示为空值null。
select classinfo.id,classinfo.name,classinfo.age,classgrade.subject,classgrade.grade from classinfo left join classgrade on classinfo.name=classgrade.name and classinfo.name="张三";
3.union连接查询
将2条或者多条sql查询结果合并为1个结果集。要求查询的列数相同,
union查询结果会去重,全显示的话可用 union all 来进行查询。
select id,name,age from classinfo where name="张三" union select name,subject,grade from classgrade where name="张三";