如何一次运行2个查询作为单个查询

时间:2013-09-26 18:31:08

标签: mysql

嗨我有像

这样的数据库
   name    to   Maths Science
    stud1 stud2   30    50
  **stud1 stud1   40    60**
    stud2 stud2   20    90
  **stud3 stud1   60    80**

当我将我的数据库作为stud1查询时,我需要输出为 我需要为他自己获得stud1的值,他评价并且所有值属于他的平均值**在上面

 AVg(Maths) Maths
    50           40

任何人都可以建议我如何进行此查询。

3 个答案:

答案 0 :(得分:0)

SELECT Name, (SELECT AVG(maths) from tbl),MATHS from tbl

答案 1 :(得分:0)

Avg()函数是一个组操作,其中select是一个行操作。您不应该尝试在单个查询中将它们组合在一起,因为它包含冗余信息。但是,如果你想继续,你可以这样做:

select to, name, maths, science, (select avg(maths) from table), 
(select avg(science) from table) from table where to ="stud1";

答案 2 :(得分:0)

嗯,不知道为什么答案会忽略平均值:

SELECT
  AVG(Maths) AS AvgMaths,
  MAX(IF(name=to), Maths, NULL)) AS Maths
FROM some_table WHERE to = 'stud1'

注意:我认为平均值是:43。(3行中有'stud1',而不是2行)