簡體   English   中英

從多個表中選擇行

[英]Selecting rows from multiple tables

我想知道最快的方法是使用PHP進行以下SQL調用。 我正在使用過程性mySQLi。

$dcount = "SELECT max(id) FROM deposits";
$result = mysqli_query($conn,$dcount);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
    $count = $row["max(id)"];
    echo $count;
    echo ",";

}
} else {
echo '0';
}

//second query
$ucount = "SELECT max(int) FROM anothertable";
$result2 = mysqli_query($conn,$ucount);
if (mysqli_num_rows($result2) > 0) {
while($row = mysqli_fetch_assoc($result)) {
    $count = $row["max(int)"];
    echo $count;
    echo ",";

}
} else {
echo '0';
}

有沒有一種方法可以使執行速度比這樣快,也許可以在第一個if語句之后回顯兩個查詢的結果?

對我來說似乎很長。

提前致謝。

SELECT max(id) as max_id, (SELECT max(int) as max_int FROM anothertable) as max_int
FROM deposits

未經測試,但類似的東西應該工作

SELECT d.max(id) as d_max_id, a.max(int) as a_max_int FROM deposits as d JOIN anothertable as a ON d.id = a.id;

您需要多個表

$row['d_max_id']

現在會給您deposits.max(id)

您必須根據希望兩個表匹配的內容來編輯d.id = a.id

如果您不能加入,請嘗試以下操作:

SELECT max(id) as max_id, (SELECT max(int) FROM anothertable) as max_int FROM deposits;

SELECT max(id) as max_id, max(int) as max_int FROM deposits ,anothertable

$dcount = "
SELECT max(id) as max,'deposit' as table_name FROM deposits
UNION
SELECT max(id) as max,'another' as table_name FROM anothertable
"; 

$result = mysqli_query($conn,$dcount);
if (mysqli_num_rows($result) > 0){
  while($row = mysqli_fetch_assoc($result)){
    echo $row["table_name"].":".$row["max"]."\n";
  }
} else {
  echo '0';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM