簡體   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