簡體   English   中英

在另一個查詢中使用MySQL結果

[英]Use MySQL result in another query

我有這段代碼,列出了工作正常的給定公司的tbl_inventory中的所有內容:

$result_inventory = mysqli_query($con,"SELECT * FROM tbl_inventory WHERE company_id='$company_id' ORDER BY ip_address")

while($row = mysqli_fetch_array($result_inventory))
echo "<td>{$row['type']} </td>";
echo "<td>{$row['ip_address']} </td>";
echo "<td>{$row['site']} </td>";

站點”列提供了一個與另一個表中的ID相關的數字,我想使用該表來運行另一個查詢,例如:

SELECT name FROM tbl_sites WHERE site_id='$site'

但是我不確定如何從以前的結果中定義$ site

有人可以指出我正確的方向嗎?

您可以使用類似:

$result_inventory = mysqli_query($con,"SELECT * FROM tbl_inventory WHERE company_id='$company_id' ORDER BY ip_address")

while($row = mysqli_fetch_array($result_inventory)){
  echo "<td>{$row['type']} </td>";
  echo "<td>{$row['ip_address']} </td>";
  $result2 = mysqli_query($con,"SELECT name FROM tbl_sites WHERE site_id='$row[site]'")
  if ($row2 = mysqli_fetch_array($result2))
    echo "<td>{$row2['name']} </td>";
}

但我認為這樣效率很低

@Rayblade的答案似乎合法,但是,您也可以在兩個表之間執行JOIN語句:

SELECT tbl_sites.name FROM tbl_inventory 
LEFT JOIN tbl_sites ON tbl_inventory.site = tbl_sites.site_id 
WHERE tbl_inventory.company_id='$company_id' 
ORDER BY tbl_inventory.ip_address

對於與站點匹配的每個公司,這將成功獲取tbl_sites.name列。 當然,在這里您可以獲取任意數量的列,只需確保使用表名作為前綴,因為查詢中現在有兩個表。

暫無
暫無

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

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