首页 / MYSQL / 一个mysql多表查询的问题
一个mysql多表查询的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了一个mysql多表查询的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1630字,纯文字阅读大概需要3分钟。
内容图文
![一个mysql多表查询的问题](/upload/InfoBanner/zyjiaocheng/236/36b0af8a20d649fab824e3b88f92279e.jpg)
比如: user表用两条记录:
id: 1 real_name: Tom
id: 2 real_name: Mike
plag表有这样一条记录
id: 1 user_id1: 1 user_id2: 2
我希望能把plag以这样的形式输出:
id: 1 name1: Tom name2: Mike
求大神给出sql并解释
回复内容:
求问一个数据库问题。 user表有一个real_name字段,表示用户姓名。plag表有两个字段 user_id1, user_id2, 现在要查询plag表中的所有信息,同时把user_id1, user_id2对应user表中的real_name也输出出来。怎么写sql?
比如: user表用两条记录:
id: 1 real_name: Tom
id: 2 real_name: Mike
plag表有这样一条记录
id: 1 user_id1: 1 user_id2: 2
我希望能把plag以这样的形式输出:
id: 1 name1: Tom name2: Mike
求大神给出sql并解释
select plag.id, group_concat(user.name order by user.id) as real_names from plag left join user on plag.user_id1 = user.id or plag.user_id2 = user.id
这句虽然输出有点出入,但是应该也符合题主的需求,输出结果应该为:
id | realnames
1 | Tom,Mike
得到的 realnames
是以 user.id
按序排列的,结果集是可操作的。
下面这句可以得到楼主希望的输出:
select plag.id,(select user.name from plag inner join user on user.id = plag.user_id1) as name1, (select user.name from plag inner join user on user.id = plag.user_id2) as name2 from plag
输出应该为:
id | name1 | name2
1 | Tom | Mike
应该使用 INNER JOIN 方式吧
参考 http://www.w3school.com.cn/sql/sql_join_inner.asp
select p.id, u1.real_name as name1, u2.real_name as name2
from plag p, user as u1, user as u2
where p.user_id1 = u1.id and p.user_id2 = u2.id;
内容总结
以上是互联网集市为您收集整理的一个mysql多表查询的问题全部内容,希望文章能够帮你解决一个mysql多表查询的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。