Ошибочный подзапрос, работающий в нескольких условиях и терпящий неудачу в других?

Следующие два запроса абсолютно одинаковы, кроме названия страны. В Query 1 - "Малайзия", а в Query 2 - "Индия".

Сам запрос ошибочен; Так как я используюac.country"в первом подзапросе, тогда как на самом деле мне нужно было использовать"ass.country", но все же я получаю результат в Query 1, тогда как я получаю NULL в Query 2.

Может кто-нибудь объяснить, почему это происходит.

Запрос 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.

0 ответов

Другие вопросы по тегам