【问题标题】:mysql having problems with UNION querymysql 遇到 UNION 查询问题
【发布时间】:2012-08-11 01:57:34
【问题描述】:

我似乎无法获得以下查询的结果,以下查询返回 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";

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

【问题讨论】:

  • 什么不起作用?更准确地告诉我们会发生什么。有没有mysql错误? PHP 错误?
  • 请注意,union 会删除重复项。要保留重复项(并节省昂贵的重复项删除),请使用 union all
  • @Andomar 谢谢你刚刚解决了另一个问题

标签: php mysql sql


【解决方案1】:

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

【讨论】:

  • 是的,当我回答之前关于此的问题时,有一个排名字段和另一个字段来确定这是新的还是使用过的(尽管您可能不需要那个)。我只是将排名移到了个人选择之外,这样你就可以在整个工会中得到一个排序。如果您将排序保留在单个选择中,那么您将只能在结果集中的这些部分中进行排序。
  • @Mike 这是一个类似的函数,它只返回isbn编号
  • 还有另一个主题处理这个可能也有一些有用的信息...stackoverflow.com/questions/213851/…
猜你喜欢
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-08
相关资源
最近更新 更多