mysql-SQL查询从重复的行中获取结果
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql-SQL查询从重复的行中获取结果,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1557字,纯文字阅读大概需要3分钟。
内容图文
![mysql-SQL查询从重复的行中获取结果](/upload/InfoBanner/zyjiaocheng/883/dbc4968a6d514df78ec81ece69910b3c.jpg)
我真的是新的SQL查询,我有1个问题.以下是详细信息:
我有两个表:
user_table
user_id username level
-------------------------
1 adam 0
2 david 1
3 danny 2
4 siva 0
5 muthu 0
6 chong 0
管理级别
staff manager level
---------------------
1 2 1
1 3 2
4 3 2
5 2 2
我想获取所有用户名及其管理员
预期结果:
username manager1 manager2
-------------------------------
adam david danny
siva danny
muthu david
这是我使用的查询:
select u.username as username,
(select username from user where user_id=m.manager and level=1) as manager1,
(select username from user where user_id=m.manager and level=2) as manager2
from user u, managing_level manager
where u.user_id=m.staff;
结果:
username manager1 manager2
-------------------------------
adam david
siva danny
muthu david
如您所见,它没有显示亚当的第二任经理.
解决方法:
如果级别表示管理员的“人数”,请尝试以下操作:
SELECT u.username, m1.username AS manager1, m2.username AS manager2
FROM user_table u LEFT JOIN (SELECT m.staff, m.manager, m.level, s1u.username
FROM managing_level m INNER JOIN user_table s1u ON m.manager = s1u.user_id
WHERE m.level = 1
) m1 ON u.user_id = m1.staff
LEFT JOIN (SELECT m.staff, m.manager, m.level, s2u.username
FROM managing_level m INNER JOIN user_table s2u ON m.manager = s2u.user_id
WHERE m.level = 2
) m2 ON u.user_id = m2.staff
WHERE m1.staff IS NOT NULL OR m2.staff IS NOT NULL
内容总结
以上是互联网集市为您收集整理的mysql-SQL查询从重复的行中获取结果全部内容,希望文章能够帮你解决mysql-SQL查询从重复的行中获取结果所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。