我在开发中碰到一个问题,主要是想让数据库来达到想要的结果,目前查询的结果为:
100 小明 1
90 小明 4
我想到达的效果是:
100 小明 1
0 小明 2
90 小明 4
0 小明 5
0 小明 6
0 小明 7
0 小明 8
0 小明 9
0 小明 10
请问如何在数据库内做到这点,最好有例子,谢谢
100 小明 1
90 小明 4
我想到达的效果是:
100 小明 1
0 小明 2
90 小明 4
0 小明 5
0 小明 6
0 小明 7
0 小明 8
0 小明 9
0 小明 10
请问如何在数据库内做到这点,最好有例子,谢谢
生成一个临时表,字段为
ID:1-10
JE:0SELECT b.id,A.XM,IF(A.JE IS NULL,B.JE,A.JE) FROM 你的查询 a right join 临时表 b on a.id=b.id
SELECT b.id,A.XM,IFNULL(A.JE,A.JE,B.JE) FROM 你的查询 a right join 临时表 b on a.id=b.id
SELECT b.id,IFNULL(A.XM,A.XM),IFNULL(A.JE,B.JE) FROM 你的查询 a right join 临时表 b on a.id=b.id
成绩:0
日期:1-3
SELECT b.日期,ifnull(a.姓名,姓名),ifnull(a.成绩,b.成绩) FROM 你的查询 a left join 临时表 b
on a.日期=b.日期
SELECT b.日期,ifnull(a.姓名,姓名),ifnull(a.成绩,b.成绩) FROM 你的查询 a right join 临时表 b
on a.日期=b.日期
用存储过程插入临时表1-3天的日期+成绩0+姓名(与你的工作表一致)
再连接
SELECT b.日期,ifnull(a.姓名,姓名),ifnull(a.成绩,b.成绩) FROM 你的查询 a right join 临时表 b
on a.日期=b.日期 and a.姓名=b.姓名
后面那个“姓名”是哪来的
成绩 姓名 日期
0 小明 1
0 小明 2
0 小明 3
0 红红 1
0 红红 2
0 红红 3
0 哈哈 1
0 哈哈 2
0 哈哈 3SELECT b.日期,b.姓名,if(a.成绩>b.成绩,a.成绩,b.成绩) FROM 你的查询 a right join 临时表 b
on a.日期=b.日期 and a.姓名=b.姓名
只有一个表还有还有学生表, 成绩表?[align=center]==== 思想重于技巧 ====
[/align]
[align=center]==== 思想重于技巧 ====
[/align]