mysql 二次查询并合并结果集

2019-10-15 13:33:07 +08:00
 meinjoy

第一个表 class 中随机获取 5 组数据 SELECT name,age FROM class , (SELECT ((1/COUNT(*))*100) as n FROM class) as x WHERE RAND()<=x.n ORDER BY RAND() LIMIT 5;

| name | age |

然后再用 class 表中的值 name 从第二表 score 中查询结果 select * from score where name=name

math | eng|

有没有办法合并成一句 sql 语句并把结果合并成

| name | age | math | eng|

7021 次点击
所在节点    MySQL
6 条回复
BacGa
2019-10-15 13:36:02 +08:00
用 name 连表查询就行
TimFire
2019-10-15 13:53:32 +08:00
现在那么多孩子叫 zixuan 的,重名不考虑的啊?
b821025551b
2019-10-15 14:09:44 +08:00
你这玩意,重名了咋办
wangyzj
2019-10-15 14:13:21 +08:00
为啥不 join
zclHIT
2019-10-15 18:27:03 +08:00
Select c.name, c.age, s.math, s.eng, (select ((1/COUNT(*))*100) as n) as x from class c inner join score on c.name = s.name where rand()<=x.n order by rand() lmiit 5;
1. 名字不会重复吗?
2.这个随机的逻辑有点复杂吧
BacGa
2019-10-15 19:12:10 +08:00
用唯一 id 喽 class 里为了区分重名肯定存了 id

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/609499

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX