$sql = "(Select max(bid),min(bid),max(ask),min(ask) From data Where date Between ('2017-05-12 09:06:00') AND ('2017-05-12 09:07:00')) UNION (select bid,ask from data order by date asc limit 1 )";

$result = $conn->query($sql)

if($result->num_rows>0)

 {

     while($row=$result->fetch_assoc())
     {

        echo "max bid:".$row["max(bid)"]. "max ask:".$row["max(ask)"].  "min bid".$row["min(bid)"]. "min ask".$row["min(ask)"]. "<br>" ;
        echo "open bid" .$row["bid"]. "open ask" .$row["ask"];
     }
 }

最佳答案

我注意到您的代码中有两件事。

1/ The column count is not same in the 2 select statements.

2/ $result = $conn->query($sql);


并且使用UNION运算符时请记住以下条件。

第一个SELECT语句中的列名用作返回结果的列名。每个SELECT语句的相应位置中列出的所选列应具有相同的数据类型。 (例如,第一条语句选择的第一列应与其他语句选择的第一列具有相同的类型。)

如果相应的SELECT列的数据类型不匹配,则UNION结果中的列的类型和长度将考虑所有SELECT语句检索到的值。

Reference

10-06 14:06