MySQL 数据查询联合查询

MySQL 多表连接查询

                在实际项目开发过程中,查询的数据可能涉及多个实体,查询的数据可能分布在多个表,经常使用多表查询,这样的查询数据的数据源可能由多个表中的数据构成。

                        MySQL中表连接包括交链接(Cross Join) 内连接(Lnner Join),自连接(Self Join),外连接(Outer Join),其中外链接还分为外连接(Left Join) 右外连接(Right Join),和全外连接(Full Join)

交叉连接(CROSSJOIN)

                交叉连接(CROSSJOIN) 返回连接表示的笛卡尔积,第一个表的每一个表的每行依次与第二表的每一行进行连接

                交叉连接(CROSSJOIN)语法格式:


        SELECT <字段名>  FROM <表 1> CROSS JOIN <表 2> [WHERE 之句]



案例:stu_xji

stu_cji

stu_xqu

利用stu_xji,stu_cji,stu_xqu表做一下查询

(1)查询学号、姓名、班级、专业、总分,按照班级排序

SELECT stu_xji.学号, stu_xji.姓名, stu_xji.班级, stu_xji.专业, stu_cji.总分
FROM stu_xji
JOIN stu_cji ON stu_xji.学号 = stu_cji.学号
ORDER BY stu_xji.班级;

(2)查询学号、姓名、班级、专业、爱好,把爱好喝酒的挑选出来

SELECT stu_xji.学号, stu_xji.姓名, stu_xji.班级, stu_xji.专业, stu_xqu.爱好
FROM stu_xji
JOIN stu_xqu ON stu_xji.学号 = stu_xqu.学号
WHERE stu_xqu.爱好 = '喝酒';

(3)查询学号、姓名、班级、专业、成绩、爱好,生成一个新的结果(无成绩的不查)

SELECT stu_xji.学号, stu_xji.姓名, stu_xji.班级, stu_xji.专业, stu_cji.总分, stu_xqu.爱好
FROM stu_xji
JOIN stu_cji ON stu_xji.学号 = stu_cji.学号
JOIN stu_xqu ON stu_xji.学号 = stu_xqu.学号
WHERE stu_cji.总分 IS NOT NULL;

(4)按照班级计算平均分,并分组显示,显示字段:平均分,班级。

SELECT AVG(stu_cji.总分) AS 平均分, stu_xji.班级
FROM stu_xji
JOIN stu_cji ON stu_xji.学号 = stu_cji.学号
GROUP BY stu_xji.班级;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值