[英]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.