$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"];
}
}
答案 0 :(得分:2)
我在你的代码中注意到两件事。
1/ The column count is not same in the 2 select statements.
2/ $result = $conn->query($sql);
使用UNION
运算符时请记住以下条件。
第一个SELECT
语句中的列名用作返回结果的列名。每个SELECT
语句的相应位置中列出的选定列应具有相同的数据类型。 (例如,第一个语句选择的第一列应该与其他语句选择的第一列具有相同的类型。)
如果相应SELECT
列的数据类型不匹配,UNION
结果中列的类型和长度会考虑所有SELECT
语句检索到的值。