在做多表联查的时候有时候会碰到比如一个班有两个老师,在班的表里记录了两个老师的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的表起个别名