0

次の 2 つのクエリは、国名を除いてまったく同じです。クエリ 1 では「マレーシア」、クエリ 2 では「インド」です。

クエリ自体が間違っています。私はac.country最初のサブクエリで " " を使用していますが、実際には " ass.country" を使用する必要がありましたが、クエリ 1 では結果を取得していますが、クエリ 2 では NULL を取得しています。

誰かがなぜこれが起こっているのか説明できますか.

クエリ 1:

SELECT DATE(DAY) AS daycust,
            (SELECT SUM(Quantity) AS webss 
            FROM ACQ AS ass
            WHERE ass.day = ac.day 
            AND ac.country IN (SELECT DISTINCT aam.country_name FROM accounts AS aam)
            AND country =  'Malaysia') AS webss

FROM analytics_country AS ac

WHERE DAY BETWEEN  '2016-07-01' AND  '2016-08-02'
             AND ac.country IN (SELECT DISTINCT aam.country_name FROM accounts AS aam)
             AND country =  'Malaysia'

GROUP BY daycust
ORDER BY daycust

クエリ 2:

SELECT DATE(DAY) AS daycust,
            (SELECT SUM(Quantity) AS webss 
            FROM ACQ AS ass
            WHERE ass.day = ac.day 
            AND ac.country IN (SELECT DISTINCT aam.country_name FROM accounts AS aam)
            AND country =  'India') AS webss

FROM analytics_country AS ac

WHERE DAY BETWEEN  '2016-07-01' AND  '2016-08-02'
             AND ac.country IN (SELECT DISTINCT aam.country_name FROM accounts AS aam)
             AND country =  'India'

GROUP BY daycust
ORDER BY daycust

注 : MySql のバージョンによって出力が異なることも付け加えておきます。

In Server version: "5.5.30-tokudb-7.0.1-MariaDB-log" -> Both the queries work fine.

In Server version: "5.5.41-tokudb-7.5.5-MariaDB - MariaDB Server" -> Only Query 1 works fine.
4

0 に答える 0