次の 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.