MYSQL+PHP求最大值,要求详细完整代码,不要只说一个思路! 5
MYSQL+PHP求最大值,要求详细完整代码,不要只说一个思路!我的MYSQL中的B表(id2是唯一值,自动递增)id2|id1|c1|c2|c3|c4|......1|...
MYSQL+PHP求最大值,要求详细完整代码,不要只说一个思路!
我的MYSQL中的B表(id2是唯一值,自动递增)
id2 | id1 | c1 | c2 | c3 | c4 | ......
1 | 1 | text1 | yy | ......
2 | 1 | text2 | xx | ......
3 | 1 | text3 | zz | ......
4 | 2 | text4 | xx | ......
5 | 3 | text5 | yy | ......
6 | 3 | text6 | yy | ......
......
B表有很多列,我有很多表,就不一一举例了。
我的PHP部分
SQL = select *
from B表 b
left join A表 a on (b.id1 = a.id1)
left join C表 c on (......)
left join D表 d on (......)
left join ......
where ...... 这里不能随便加条件,否则会影响我其它表输出值的
group by b.id2
order by a.id1, b.id2
<table><tr>
<td>echo 'id1'</td>
<td>echo 'id2'</td>
<td>echo 'hello'</td>
<td>echo 'max hello'</td>
<td>其它列的标题</td>
</tr></table>
while($row = mysql_fetch_array($result)){
<table><tr>
<td>row['id1']</td>
<td>row['id2']<</td>
<td>$hello</td>
<td>$max_hello</td>
<td>与其它多张表关联的一些值</td>
</tr></table>
}
如果id2对应的$hello的值如下(以下只是举例,$hello是变量,其实是根据每条新插入的记录各值关系算出的)
id2 | $hello
1 | 100
2 | 300
3 | 200
4 | 500
5 | 400
6 | 600
我需要的最终显示结果如下
id1 | id2 | hello | max hello | ......
1 | 1 | 100 | 300 | ......
1 | 2 | 300 | 300 | ......
1 | 3 | 200 | 300 | ......
2 | 4 | 500 | 500 | ......
3 | 5 | 400 | 600 | ......
3 | 6 | 600 | 600 | ......
......
提示:
数据表是自动插入记录的。
$hello 是我用函数求得每行id2对应的值,根据新记录各值得到的。
要求:
求$max_hello。现在就是不知道$max_hello的函数或关系式该如何写
$max_hello 是对相同的id1求所对应的所有$a的最大值(因为id2是唯一值,但id1不是,相同的id1会对应1个或多个不同id2,每个id2会对应1个$hello的值,$hello不用你求)
请在while的关闭符 “}” 之前写,不要在关闭符之后再用print,否则我不知道如何和我现有其它关联内容一起用
回答时,请写详细完整代码,而不是只讲一个思路,光讲思路我弄不出,谢谢
上面描述中,有一个$a写错了,是想写$hello的
还有一点请注意,hello不是MYSQL表里的字段,也不能将它添加到数据表中。
$hello是个变量,$hello=......;这个是我自己用各函数公式以及调用关联表得到的
看来高手还是少啊 展开
我的MYSQL中的B表(id2是唯一值,自动递增)
id2 | id1 | c1 | c2 | c3 | c4 | ......
1 | 1 | text1 | yy | ......
2 | 1 | text2 | xx | ......
3 | 1 | text3 | zz | ......
4 | 2 | text4 | xx | ......
5 | 3 | text5 | yy | ......
6 | 3 | text6 | yy | ......
......
B表有很多列,我有很多表,就不一一举例了。
我的PHP部分
SQL = select *
from B表 b
left join A表 a on (b.id1 = a.id1)
left join C表 c on (......)
left join D表 d on (......)
left join ......
where ...... 这里不能随便加条件,否则会影响我其它表输出值的
group by b.id2
order by a.id1, b.id2
<table><tr>
<td>echo 'id1'</td>
<td>echo 'id2'</td>
<td>echo 'hello'</td>
<td>echo 'max hello'</td>
<td>其它列的标题</td>
</tr></table>
while($row = mysql_fetch_array($result)){
<table><tr>
<td>row['id1']</td>
<td>row['id2']<</td>
<td>$hello</td>
<td>$max_hello</td>
<td>与其它多张表关联的一些值</td>
</tr></table>
}
如果id2对应的$hello的值如下(以下只是举例,$hello是变量,其实是根据每条新插入的记录各值关系算出的)
id2 | $hello
1 | 100
2 | 300
3 | 200
4 | 500
5 | 400
6 | 600
我需要的最终显示结果如下
id1 | id2 | hello | max hello | ......
1 | 1 | 100 | 300 | ......
1 | 2 | 300 | 300 | ......
1 | 3 | 200 | 300 | ......
2 | 4 | 500 | 500 | ......
3 | 5 | 400 | 600 | ......
3 | 6 | 600 | 600 | ......
......
提示:
数据表是自动插入记录的。
$hello 是我用函数求得每行id2对应的值,根据新记录各值得到的。
要求:
求$max_hello。现在就是不知道$max_hello的函数或关系式该如何写
$max_hello 是对相同的id1求所对应的所有$a的最大值(因为id2是唯一值,但id1不是,相同的id1会对应1个或多个不同id2,每个id2会对应1个$hello的值,$hello不用你求)
请在while的关闭符 “}” 之前写,不要在关闭符之后再用print,否则我不知道如何和我现有其它关联内容一起用
回答时,请写详细完整代码,而不是只讲一个思路,光讲思路我弄不出,谢谢
上面描述中,有一个$a写错了,是想写$hello的
还有一点请注意,hello不是MYSQL表里的字段,也不能将它添加到数据表中。
$hello是个变量,$hello=......;这个是我自己用各函数公式以及调用关联表得到的
看来高手还是少啊 展开
1个回答
展开全部
楼主描述的问题我看的不是很懂,请问$a在哪呀,能否把你用到的表的结构导一份出来
更多追问追答
追问
$a写错了,应该是$hello
追答
SQL = select *,MAX(a.hello)
from B表 b
left join A表 a on (b.id1 = a.id1)
left join C表 c on (......)
left join D表 d on (......)
left join ......
where ......
group by b.id2
order by a.id1, b.id2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询