语法错误,意外' UNION' (T_STRING)查询中的联合

时间:2017-05-15 04:18:55

标签: php mysql

$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 个答案:

答案 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语句检索到的值。

Reference