繁体   English   中英

两个SELECT SQL语句

[英]Two SELECT SQL statements

我尝试从数据库获取数据。 我可以获得最大最小值,但无法列出x和y值。

代码如下。 谢谢您的帮助

<?php

$sql = "SELECT  * FROM veri UNION ALL SELECT MAX(x) as 'maxx', MIN(x) as 'minx', MAX(y) as 'maxy', MIN(y) as 'miny' FROM veri  ";
$result = mysql_query($sql);
$result_array = array();
while($row = mysql_fetch_array($result)){
    $result_array[] = $row;

    echo $row['x'];
    echo $row['y'];
    echo $row['miny'];
    echo "<br>";
    echo $row['maxy'];
    echo "<br>";
    echo $row['minx'];
    echo "<br>";
    echo $row['maxx'];
    echo "<br>";
}

?>

我不确定我是否了解您对查询的意图,但是如果veri有两列,则由于您的第一个查询有两列,而第二个查询有四列,因此您的两个选择不并集兼容。 如果一个查询具有相同的列数并且对应的列具有相同的类型,则该查询与另一个查询是联合兼容的。 此外,查询的结果是一个表,因此您不能在不同行的列(x与maxx)上使用不同的名称。

您可以对最小值和最大值使用四个子选择:

SELECT x, y, (SELECT MAX(x) FROM veri) as maxx
           , (SELECT MIN(x) FROM veri) as minx
           , (SELECT MAX(y) FROM veri) as maxy
           , (SELECT MIN(y) FROM veri) as miny
FROM veri

或者您需要一个分类器来确定该行代表什么:

SELECT 'row' as origin, x, y FROM veri
UNION ALL
SELECT 'max' as origin, max(x) as x, max(y) as y FROM veri
UNION ALL
SELECT 'min' as origin, min(x) as x, min(y) as y FROM veri

但是,在这种情况下,将其分为两个查询可能是最有意义的:

q1: SELECT x, y FROM veri

q2: SELECT MAX(x) as maxx, MIN(x) as minx, MAX(y) as maxy, MIN(y) as miny FROM veri

并单独处理。

好的,我像您说的那样将查询分为两部分。 它解决了。 谢谢

$sql1= "SELECT x,y FROM veri  ";
$result1=mysql_query($sql1) or die(mysql_error());
$result_array = array();
while($row1 = mysql_fetch_array($result1)){
$result_array[] = $row1;

       echo $row1['x'];
       echo $row1['y'];
    }



$sql2= "SELECT  MAX(x) as 'maxx', MIN(x) as 'minx', MAX(y) as 'maxy', MIN(y) as 'miny' FROM veri  ";
$result2=mysql_query($sql2) or die(mysql_error());
$result_array = array();
while($row2 = mysql_fetch_array($result2)){

        echo $row2['miny'];
        echo "<br>";
        echo $row2['maxy'];
        echo "<br>";
        echo $row2['minx'];
        echo "<br>";
        echo $row2['maxx'];
        echo "<br>";

   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM