吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2410|回复: 15
收起左侧

[求助] SQL查询语句

[复制链接]
utibet田同学 发表于 2021-2-1 23:33
现在有三个表

admin_user(字段ID,USERNAME,PASSWORD,ORG_ID,CLASS_ID,LEVEL,NAME) 其中的ORG_ID,class_id在某些情况下为0。

org_info(字段org_id,name)

class_info(字段id,name,org_id)

比如现在admin_user中有一条数据为
id    username    password    level    org_id    class_id    name
1    username      password       3            0            0       张三
2    username1    password1     2            1            0       李四

3    username2    password2     1            1            1       王五


class_info中有一条数据为
id            name                org
1             班级1               1

org_info中数据为

org_id            name

1                    组织1


想得到的结果是查询A中的数据时,返回的结果为

id    username    level    org_id    class_id    name
1    username          3            0            0      张三
2    username1        2      组织1          0       李四

3    username2        1      组织1      班级1    王五

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
为之奈何? + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

零下八度 发表于 2021-2-1 23:49
个人建议,问SQL问题,说明数据库类型,附上创建表和初始化数据的SQL(不用手打的,数据库可以直接导出),回复率应该会高很多。

就像我,哪怕我心里有思路怎么写你的SQL了,我还是实在不想对着你的帖子辛辛苦苦的复制粘贴新建表,新建字段,添加数据,来写个sql。。。

starae86 发表于 2021-2-1 23:55
SELECT
  u.ID,
  u.USERNAME,
  U.LEVEL,
  IFNULL(o.name, u.ORG_ID),
  IFNULL(c.name, u.CLASS_ID),
  u.NAME
FROM
  admin_user u
  LEFT JOIN org_info o
    ON u.ORG_ID = o.ORG_ID
  LEFT JOIN class_info c
    ON u.CLASS_ID = C.CLASS_ID ;
a13244813123 发表于 2021-2-1 23:55
楼上正解,而且。。你这个直接百度多表关联查询。。多看看那些语法,花点时间你就知道你这个怎么查询了。。实际上就只是where条件如何运用的问题
pxhzai 发表于 2021-2-2 00:02
本帖最后由 pxhzai 于 2021-2-2 00:04 编辑

https://wwx.lanzoui.com/inJyEl766ch







QQ截图20210202000101.png
zrmpop 发表于 2021-2-2 00:34
SELECT a.id, a.username,a.level,case a.org_id WHEN 0 then 0 else b.name end as org_id, case a.class when 0 then 0 else c.name end as org_id,a.NAME
from admin_user a
left join org_info b on a.org_id = b.org_id
left jon class_info c on a.class_id = c.id
北回归线 发表于 2021-2-2 01:02
select  a.id,a.username,a.level,
case  a.ori_id    when '1'  then '组织1' else '0' end as [org_id],
case  a.class_id  when '1'  then '班级1' else '0' end as [class_id],
a.name  from  admin_user a,class_info b,org_info c
where a.id=b.id and a.org_id = c.org_id

bookaccount 发表于 2021-2-2 03:09
查了下, mysql 用ifnull或coalesce, ms sql server用isnull或coalesce, oracle用nvl,另外3楼的sql里,IFNULL(o.name, u.ORG_ID),  name和orgid字段的类型不一样,最好改成一样,另外后面要加个 as org_id
zylz9941 发表于 2021-2-2 08:45
学习一下。
zylz9941 发表于 2021-2-2 08:46
pxhzai 发表于 2021-2-2 00:02
https://wwx.lanzoui.com/inJyEl766ch

谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 07:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表