没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
1页
需求是这样的,一个资源表有分类r_class_id(分类表id对应的外键) 创建者r_up_creator(用户表id对应的外键) 审核者r_ver_id (用户表id对应的外键),这时候该怎么将其都查询出来呢? 首先用左连接: select resources.*,resource_classify.rc_name,users.u_name as r_up_creator ,users_1.u_name as r_verifier from resources left join resource_classify on resources.r_class_id = resource_cla
资源推荐
资源详情
资源评论
mysql一个表有三个外键,其中该表的两个字段的应对的外键的表都是同一张表,解决如一个表有三个外键,其中该表的两个字段的应对的外键的表都是同一张表,解决如
何将其查询出来何将其查询出来
需求是这样的,一个资源表有分类r_class_id(分类表id对应的外键) 创建者r_up_creator(用户表id对应的外键) 审核者r_ver_id (用户表id对应的外键),这时候该怎么将其都查
询出来呢?
首先用左连接:
select resources.*,resource_classify.rc_name,users.u_name as r_up_creator ,users_1.u_name as r_verifier from resources left join resource_classify on resources.r_class_id = resource_classify.rc_id left join users ON
resources.r_creator_id = users.u_id left join users as users_1 ON resources.r_ver_id = users.u_id group by r_id
结果如下,其中使用了 group by 去重,但是实际上r_verifier 字段对应的那四个有值的行 并不是123,而是小蓝蓝,如何知道它是小蓝蓝呢?其中看r_ver_id 就知道,它和
r_up_creator的值是一样的.
这时候用inner join 加左连接就可以解决了。
select resources.*,resource_classify.rc_name,users.u_name as r_up_creator ,users_1.u_name as verifier from resources INNER JOIN resource_classify ON resources.r_class_id = resource_classify.rc_id INNER JOIN
users ON resources.r_creator_id = users.u_id left JOIN users AS users_1 ON resources.r_ver_id =users_1.u_id
结果如下:
完美的解决了。期间还考虑用 inner join,但是只用inner join 的话 r_ver_id 如果没有值的话查询不出全部内容。
纯属开发中意外发现,并无抄袭。如若转载请标明出处
作者:qq_41134977
资源评论
weixin_38624628
- 粉丝: 8
- 资源: 935
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功