mysql 在 UNION 查询方面遇到问题


mysql having problems with UNION query

我似乎无法获得以下查询的结果,以下查询返回 NULL

查询联合

"SELECT isbn    
    FROM ".TBL_BOOKS." 
    WHERE rank < 200000 AND rank IS NOT NULL 
    AND lowest_new_price < amazon_new_price/100*80 
    AND amazon_new_price < 9999 
    AND ROUND((amazon_new_price/100*80) - lowest_new_price) > (lowest_new_price/100*".MARGIN.") 
UNION 
SELECT isbn 
    FROM ".TBL_BOOKS." 
    WHERE rank < 200000 AND rank IS NOT NULL 
    AND lowest_used_price < amazon_used_price/100*80 
    AND amazon_used_price < 9999 
    AND amazon_used_price < amazon_new_price 
    AND ROUND((amazon_used_price/100*80) - lowest_used_price) > (lowest_used_price/100*".MARGIN.") 
ORDER BY rank ASC";

但是这两个奎尔本身工作得很好

查询 1

"SELECT isbn    
    FROM ".TBL_BOOKS." 
    WHERE rank < 200000 AND rank IS NOT NULL 
    AND lowest_new_price < amazon_new_price/100*80 
    AND amazon_new_price < 9999 
    AND ROUND((amazon_new_price/100*80) - lowest_new_price) > (lowest_new_price/100*".MARGIN.") 
ORDER BY rank ASC";

查询 2

"   SELECT isbn 
        FROM ".TBL_BOOKS." 
        WHERE rank < 200000 AND rank IS NOT NULL 
        AND lowest_used_price < amazon_used_price/100*80 
        AND amazon_used_price < 9999 
        AND amazon_used_price < amazon_new_price 
        AND ROUND((amazon_used_price/100*80) - lowest_used_price) > (lowest_used_price/100*".MARGIN.") 
ORDER BY rank ASC";

如果我拆分联合并分别运行两个查询,我不会有问题,但由于某种原因 UNION 查询不起作用,可能有什么问题?谢谢

我认为 -

当您在联合中使用"order by"子句时 - 那么"order by"参数必须是各个查询返回的字段之一。