Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql在联合查询方面有问题_Php_Mysql_Sql - Fatal编程技术网

Php mysql在联合查询方面有问题

Php mysql在联合查询方面有问题,php,mysql,sql,Php,Mysql,Sql,我似乎无法获得以下查询的结果,以下查询返回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*

我似乎无法获得以下查询的结果,以下查询返回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";
“选择isbn
来自“.TBL_书籍”
其中秩<200000且秩不为空
最低新价<亚马逊新价/100*80
亚马逊的新价格<9999
和ROUND((亚马逊新价格/100*80)-最低新价格)>(最低新价格/100*“.MARGIN.”)
联合
选择isbn
来自“.TBL_书籍”
其中秩<200000且秩不为空
最低使用价格<亚马逊使用价格/100*80
亚马逊使用的价格<9999
而亚马逊使用的价格<亚马逊新价格
和ROUND((亚马逊二手价格/100*80)-最低二手价格)>(最低二手价格/100*”。MARGIN.)
按职级排序”;
但这两个要求本身就可以很好地发挥作用

查询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";
“选择isbn
来自“.TBL_书籍”
其中秩<200000且秩不为空
最低新价<亚马逊新价/100*80
亚马逊的新价格<9999
和ROUND((亚马逊新价格/100*80)-最低新价格)>(最低新价格/100*“.MARGIN.”)
按职级排序”;
查询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";
“选择isbn
来自“.TBL_书籍”
其中秩<200000且秩不为空
最低使用价格<亚马逊使用价格/100*80
亚马逊使用的价格<9999
而亚马逊使用的价格<亚马逊新价格
和ROUND((亚马逊二手价格/100*80)-最低二手价格)>(最低二手价格/100*”。MARGIN.)
按职级排序”;

如果我拆开联合并分别运行这两个查询,我将不会有问题,但由于某种原因联合查询无法工作,会出现什么问题?谢谢

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

什么不起作用?更准确地告诉我们发生了什么。是否存在mysql错误?PHP错误?请注意,
union
删除重复项。要保留副本(并节省昂贵的副本删除费用),请使用
union all
@Andomar谢谢你刚刚解决了另一个问题是的,当我回答之前的问题时,有一个秩字段和另一个字段要确定标记这是新的还是使用过的(尽管你可能不需要该字段)。我只是把排名移到了个人选择之外,这样你就可以在整个联盟中进行排序。如果将排序保留在“个人选择”中,则只能在结果集的这些部分中进行排序。@Mike这是一个类似的函数,它只返回isbn号。还有另一个与此相关的主题,可能也有一些有用的信息。。。