查询显示php mysql两个不同列的值

我有两个包含字段和值的表:</ p>

TABLE respostas </ p>

  Id Corp_resp Id_perg Id_quest 
12 0,2 1 1
13 0,5 2 1
14 0,7 3 1
15 0,2 4 1
16 0,3 5 1
17 0,6 6 1
</ code> </ pre>

表格菜单</ p>

  Id_perg percentagemadministrador Id_quest 
1 0.5 1
2 0.4 1
3 0.3 1
4 0,2 1
5 0,1 1
6 0,8 1
</ code> </ pre>

我想关联 id_quest </ code>到 id_perg </ code>并将 corp_resp </ code>与 percenta相乘 表的最后10行的gemadministrador </ code> respostas </ code> </ p>

total = SUM(corp_resp * percentagemadministrador)</ code>的最后一行 该表的10行。</ p>

 &lt;?php 
mysql_connect(“localhost”,“root”,“”)或die(mysql_error());
mysql_select_db(“ teste“)或死(mysql_error()); // selecciona数据库服务器escolhido

//这样的东西

$ query =“SELECT SUM(menu.percentagemadministrador * respostas.corp_resp)as TOTAL
FROM respostas
INNER JOIN菜单
WHERE respostas.id_perg = menu.id_perg
AND respostas.id_quest = menu.id_perg
LIMIT id_perg = 10“;

$ resultado = mysql_query($ query)or die(mysql_error());

if( $ row = mysql_fetch_array($ resultado)){

echo“&lt; center&gt; Final:&lt; / center&gt;”。$ row ['TOTAL'];
}?&gt;
</ code> < / pre>

你能帮忙吗?</ p>
</ div>

展开原文

原文

i have two tables with fields and values:

TABLE respostas

Id      Corp_resp            Id_perg     Id_quest 
12       0,2                 1             1
13       0,5                 2             1
14       0,7                 3             1
15       0,2                 4             1
16       0,3                 5             1
17       0,6                 6             1

Table menu

Id_perg         percentagemadministrador Id_quest
1                             0.5        1    
2                             0.4        1         
3                             0.3        1          
4                             0,2        1
5                             0,1        1
6                             0,8        1

I want to associate the id_quest to id_perg and multiply the corp_resp with percentagemadministrador of the last 10 rows of the table respostas

total=SUM(corp_resp*percentagemadministrador) of the last 10 rows of the table.

<?php
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("teste") or die(mysql_error()); // selecciona a database do server escolhido

//something like that

$query ="SELECT SUM(menu.percentagemadministrador*respostas.corp_resp) as TOTAL 
         FROM respostas 
         INNER JOIN menu 
         WHERE respostas.id_perg=menu.id_perg 
         AND respostas.id_quest=menu.id_perg 
         LIMIT id_perg=10";

$resultado = mysql_query($query) or die(mysql_error());

if($row = mysql_fetch_array($resultado)){

    echo " <center> Final: </center> ".$row['TOTAL'];
} ?>

Can you help with that?

douqingnao9246
douqingnao9246 请停止使用mysql_*函数。这些扩展已在PHP7中删除。了解PDO和MySQLi的预处理语句并考虑使用PDO,这非常简单。
4 年多之前 回复
dsdeeaquu38538545
dsdeeaquu38538545 草莓就是一个例子。Id_quest是1,你内心有很多问题,那就是id_perg。
4 年多之前 回复
duanqinqiao4844
duanqinqiao4844 到目前为止你做了什么来达到理想的输出?
4 年多之前 回复
duanniu3385
duanniu3385 你将id_quest关联到id_perg是什么意思?以及两个表如何连接?(哪些关键字段)
4 年多之前 回复
duanhuangyun3887
duanhuangyun3887 我在这里看不到10行
4 年多之前 回复

1个回答



我认为你应该使用一个subselect来获取10个firts id </ p>

   SELECT SUM(menu.percentagemadministrador * respostas.corp_resp)为TOTAL 
FROM respostas INNER JOIN菜单
WHERE respostas.id_perg = menu.id_perg
AND respostas.id_quest = menu.id_perg
AND id_perg in(通过id_perg限制从respostas顺序中选择id_perg) 10);
</ code> </ pre>

如果不起作用我们可以尝试使用内连接</ p>

  SELECT SUM(菜单 .percentagemadministrador * respostas.corp_resp)作为TOTAL 
FROM respostas
INNER JOIN菜单打开(respostas.id_perg = menu.id_perg
AND respostas.id_quest = menu.id_perg)
INNER JOIN(通过id_perg限制10从respostas顺序中选择id_perg) as t2
on(respostas.id = t2.id)
</ code> </ pre>
</ div>

展开原文

原文

I think you should use a subselect for getting the 10 firts id only

SELECT SUM(menu.percentagemadministrador*respostas.corp_resp) as TOTAL 
FROM respostas INNER JOIN menu 
WHERE respostas.id_perg=menu.id_perg 
AND respostas.id_quest=menu.id_perg 
AND id_perg in (select id_perg from respostas order by id_perg limit 10);

if don't work in we can try with inner join

SELECT SUM(menu.percentagemadministrador*respostas.corp_resp) as TOTAL 
FROM respostas 
INNER JOIN menu on ( respostas.id_perg=menu.id_perg 
     AND respostas.id_quest=menu.id_perg)  
INNER JOIN  ( select id_perg from  respostas order by id_perg limit 10) as t2 
 on (respostas.id = t2. id)

douju5062
douju5062 与...的Mismacth形式我更新答案..
4 年多之前 回复
dsuxcxqep31023992
dsuxcxqep31023992 您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在'respostas order by id_perg limit 10'附近使用正确的语法为t2 on(respostas.id = t2.id)'在第2行即输出。
4 年多之前 回复
duanchuang6978
duanchuang6978 我已经更新了答案..
4 年多之前 回复
dongliechuich10319
dongliechuich10319 该值来自两个表中的最后3行一个示例。
4 年多之前 回复
douzangdang2225
douzangdang2225 我更新表格,你看到我想要给出的值。 total = sum(corp_resp * percentagemadministrador)总计=(o,2 * 0,2 + 0,3 * 0,1 + 0,6 * 0,8)= 0,55在屏幕总数中打印= 0,55
4 年多之前 回复
dqrq93879
dqrq93879 请根据您问题中的值,更新您的问题并告诉我您需要获得的结果。
4 年多之前 回复
doudun3040
doudun3040 我尝试这样,但一直给予同样的价值。 “SELECT SUM(menu.percentagemadministrador * respostas.corp_resp)作为TOTAL FROM respostas INNER JOIN菜单ORDER BY id_resp DESC LIMIT 5”;
4 年多之前 回复
dongqian7545
dongqian7545 5.6.26 - MySQL社区服务器
4 年多之前 回复
dqpd4268
dqpd4268 PHP / 5.6.12是版本
4 年多之前 回复
douruduan8812
douruduan8812 我已经更新了答案..
4 年多之前 回复
douwen9345
douwen9345 你正在使用哪个版本的mysql?
4 年多之前 回复
dqq9695
dqq9695 这不起作用,告诉不支持“这个版本的MySQL还不支持'LIMIT&IN / ALL / ANY / SOME子查询'”
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐