mysql总和2选择

时间:2014-11-20 09:52:03

标签: mysql sum

我有mysql问题:

此表存储有关已转换影片的信息。 这是我的第一个sql:

SELECT COUNT(*) FROM uzytkownicy_filmy WHERE id_uzytkownika =1341143 AND id_albumu=0

此表存储有关已添加的电影的信息并等待其队列转换,转换将转移到表uzytkownicy_filmy 这是第二个:

SELECT COUNT(*) FROM uzytkownicy_filmy_convert WHERE id_uzytkownika =1341143 AND id_albumu=0

问题是:

我如何连接两个结果并提供给我的SQL查询:

        UPDATE uzytkownicy_filmy_albumy
        SET ile_filmow=(

        // Here I want the sum of the queries that you see above 

                       )
            WHERE id="' . $this->oDb->getSecureForm($iAlbumId) . '" AND id_uzytkownika="' . $this->oDb->getSecureForm($iUserId) . '"');

2 个答案:

答案 0 :(得分:1)

对两个查询求和的查询如下:

SELECT a.count + b.count FROM
(SELECT COUNT(*) AS count FROM uzytkownicy_filmy WHERE id_uzytkownika =1341143 AND id_albumu=0) AS a,
(SELECT COUNT(*) AS count FROM uzytkownicy_filmy_convert WHERE id_uzytkownika =1341143 AND id_albumu=0) AS b;

所以你可以在你的最终查询中添加这段代码:

UPDATE uzytkownicy_filmy_albumy
    SET ile_filmow=(

        SELECT a.count + b.count FROM
           (SELECT COUNT(*) AS count FROM uzytkownicy_filmy WHERE id_uzytkownika =1341143 AND id_albumu=0) AS a,
           (SELECT COUNT(*) AS count FROM uzytkownicy_filmy_convert WHERE id_uzytkownika =1341143 AND id_albumu=0) AS b;

                   )
        WHERE id="' . $this->oDb->getSecureForm($iAlbumId) . '" AND id_uzytkownika="' . $this->oDb->getSecureForm($iUserId) . '"');

答案 1 :(得分:0)

假设您想要两个总和,那么这样的事情应该做的工作:

DECLARE @SUM1 INT,
        @SUM2 INT
SELECT @SUM1 = COUNT(*) FROM uzytkownicy_filmy WHERE id_uzytkownika =1341143 AND id_albumu=0
SELECT @SUM2 = COUNT(*) FROM uzytkownicy_filmy_convert WHERE id_uzytkownika =1341143 AND id_albumu=0

UPDATE uzytkownicy_filmy_albumy
    SET ile_filmow=(

    // Here I want the sum of the queries that you see above
    @SUM1 + @SUM2

                   )
        WHERE id="' . $this->oDb->getSecureForm($iAlbumId) . '" AND id_uzytkownika="' . $this->oDb->getSecureForm($iUserId) . '"');