MYSQL SQL做题总结

发布时间 2023-09-18 21:33:55作者: gonghw403

一.关于join

1.内外左右连接

2.交叉联结(corss join)
使用交叉联结会将两个表中所有的数据两两组合。如下图,是对表“text”自身进行交叉联结的结果:

3.三表双双连接
力扣题目

a与b表笛卡尔积,再与c表左连接。

SELECT a.student_id, a.student_name, b.subject_name, count(c.subject_name) AS attended_exams FROM Students AS a
CROSS JOIN Subjects AS b  # CROSS JOIN
LEFT JOIN Examinations AS c ON a.student_id = c.student_id AND b.subject_name  = c.subject_name    # LEFT JOIN ON 
GROUP BY student_id, subject_name
ORDER BY student_id, subject_name;

二.关于字符个数

三.关于日期计算

  1. datediff(日期1, 日期2)

  2. timestampdiff(时间类型, 日期1, 日期2)

四.关于With as

with A as (select * from class)
select *from A  

这个语句的意思就是,先执行select * from class 得到一个结果,将这个结果记录为A ,在执行select *from A 语句。A 表只是一个别名。

也就是将重复用到的大批量 的SQL语句,放到with as 中,加一个别名,在后面用到的时候就可以直接用。

五.关于