Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从mysql中的两个子查询中选择数据_Mysql_Subquery - Fatal编程技术网

从mysql中的两个子查询中选择数据

从mysql中的两个子查询中选择数据,mysql,subquery,Mysql,Subquery,我对mysql有问题 我需要从一些连接的表中选择总和,但我没有得到我需要的结果。 这是我的问题 SELECT kelas.kelas as kelas, perpus.perpus as perpus FROM (SELECT b.id_alt, SUM(a.nilai_crips) AS kelas FROM crips AS a JOIN list AS b ON a.id_crips=b.id_crips where a.id_kriteria=34 group by b.

我对mysql有问题 我需要从一些连接的表中选择总和,但我没有得到我需要的结果。 这是我的问题

SELECT kelas.kelas as kelas, perpus.perpus as perpus
    FROM
    (SELECT b.id_alt, SUM(a.nilai_crips) AS kelas FROM crips AS a JOIN list AS b ON a.id_crips=b.id_crips where a.id_kriteria=34 group by b.id_alt
    )as Kelas,
    (SELECT SUM(a.nilai_crips) AS perpus FROM crips AS a JOIN list AS b ON a.id_crips=b.id_crips where a.id_kriteria=35 group by b.id_alt
    )as perpus
    group by kelas.id_alt
第一列显示正确的结果,但第二列不显示

kelas | perpus
100   | 100
100   | 100
100   | 100
100   | 100
10    | 100
100   | 100
80    | 100
100   | 100
如果我删除了第一个子查询,该列将返回正确的结果

perpus
100
100
100
100
100
100
100
76

我的问题出了什么问题?提前感谢您的帮助。

使用单选,并有条件地添加值:

SELECT 
    b.id_alt, 
    SUM(IF(a.id_kriteria = 34,a.nilai_crips,0)) AS kelas,
    SUM(IF(a.id_kriteria = 35,a.nilai_crips,0)) AS perpus
FROM crips AS a 
JOIN list AS b 
ON a.id_crips = b.id_crips 
WHERE a.id_kriteria IN (34,35)
GROUP BY b.id_alt;

使用单选,并有条件地添加值:

SELECT 
    b.id_alt, 
    SUM(IF(a.id_kriteria = 34,a.nilai_crips,0)) AS kelas,
    SUM(IF(a.id_kriteria = 35,a.nilai_crips,0)) AS perpus
FROM crips AS a 
JOIN list AS b 
ON a.id_crips = b.id_crips 
WHERE a.id_kriteria IN (34,35)
GROUP BY b.id_alt;

您正在两个子查询结果之间进行交叉联接。您正在两个子查询结果之间进行交叉联接。