1、执行update之后需要commit
执行update显示执行成功,查询时发现字段内容已经被正确修改了,然而这时候想要去修改表结构(执行alter语句),比如修改字段长度,总是提示“错误号: -6407,错误消息: 锁超时”。
此时执行了一下commit,提示“影响了0条记录”
然而此时再去修改表结构,成功。。所以,谜一样的commit。
2、连表查询,同一张表可以被同时命名为不同的名字
表结构
-
人员表 (
user
):user_id
(用户id)user_name
(用户姓名)dept_id
(所属部门id)company_id
(所属公司id)
-
组织表 (
dept
):dept_id
(公司或部门id)dept_name
(公司或部门名称)parent_id
(上级单位id,若是公司,此字段为0)
查询要求
写一个获取人员列表的sql,要求返回字段中有:用户姓名user_name
,所属部门名称dept_name
,所属公司名称company_name
查询逻辑
-
获取所属部门名称:
- 通过
user.dept_id
关联dept.dept_id
,获取部门名称。
- 通过
-
获取所属公司名称:
- 通过
user.company_id
关联dept.dept_id
,获取公司名称。
- 通过
SELECT
u.user_name,
c.dept_name AS company_name,
d.dept_name
FROM
user u
LEFT JOIN dept c ON u.company_id = c.dept_id -- 获取公司名称
LEFT JOIN dept d ON u.dept_id = d.dept_id -- 获取部门名称
其中,dept这张表,被命名为c来获取公司名称,同时,又被命名为d来获取部门名称。