数据库使用tips记录

1、执行update之后需要commit

执行update显示执行成功,查询时发现字段内容已经被正确修改了,然而这时候想要去修改表结构(执行alter语句),比如修改字段长度,总是提示“错误号: -6407,错误消息: 锁超时”。

此时执行了一下commit,提示“影响了0条记录”

然而此时再去修改表结构,成功。。所以,谜一样的commit。

2、连表查询,同一张表可以被同时命名为不同的名字

表结构

  1. 人员表 (user):

    • user_id(用户id)
    • user_name(用户姓名)
    • dept_id(所属部门id)
    • company_id(所属公司id)
  2. 组织表 (dept):

    • dept_id(公司或部门id)
    • dept_name(公司或部门名称)
    • parent_id(上级单位id,若是公司,此字段为0)

查询要求

写一个获取人员列表的sql,要求返回字段中有:用户姓名user_name,所属部门名称dept_name,所属公司名称company_name

查询逻辑

  1. 获取所属部门名称

    • 通过 user.dept_id 关联 dept.dept_id,获取部门名称。
  2. 获取所属公司名称

    • 通过 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来获取部门名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值