关闭

mysql多次join同一张表的处理

标签: mysql
4567人阅读 评论(1) 收藏 举报

在做多表联查的时候有时候会碰到比如一个班有两个老师,在班的表里记录了两个老师的id,现在要把id换成这两个老师的名字,就需要按照老师的id去查老师表,也就是班级表需要两次join老师表来获取两个或多个老师的名字,如果直接join是不行的,因为两个老师表会重名,但是只要给老师表起个别名就好了,代码如下

班级表class_info,里面有两个字段user1_id和user2.id,分别表示这个班两个老师的id,另外还有一个class_id

老师表user_info,里面有两个字段,user_id和user_name,分别表示老师的id和老师的名字

SELECT class_info.`class_id`,user_info.`user_name` AS user1,tmp.`user_name`AS user2//tmp是老师表的临时表,user1,user2是查询完之后记录老师姓名的列名
FROM class_info //主表
LEFT JOIN user_info ON user_info.`user_id` = class_info.`user1_id`//查第一个老师的名字
LEFT JOIN user_info AS tmp ON tmp.`user_id` = class_info.`user2_id`//查第二个老师的名字,此时需要对已经join的表起个别名


2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:471831次
    • 积分:5372
    • 等级:
    • 排名:第5709名
    • 原创:146篇
    • 转载:0篇
    • 译文:1篇
    • 评论:203条
    最新评论