簡體   English   中英

合並兩個PDO查詢的結果

[英]Combine Results from Two PDO queries

我有以下幾行:

$products = $dbh->query("SELECT piP2Components.typeID, invTypes.typeName FROM piP2Components INNER JOIN invTypes ON piP2Components.typeID = invTypes.typeID ORDER BY invTypes.typeName ASC;");

我有另一個表piP3Components,我想對其運行相同的查詢,並將結果添加到$ products變量中。 結果是一個PDOStatement對象,我不能簡單地使用array_push。

我將如何去做呢? 另外,我對使用JOIN查詢還很陌生,有沒有一種方法可以在SQL中完成此任務而又不將piP3Components.typeID結果放在不同的列中?

謝謝。

您有兩個選擇。

首先,如果您從每個表中選取的列具有相同的列類型,則可以使用UNION

SELECT foo, bar, baz FROM something WHERE ...
UNION ALL
SELECT qux AS foo, meta AS bar, syntactic AS baz FROM elsewhere WHERE ...

其次,您可以運行兩個查詢,然后獲取每個查詢的結果並將它們放置在單個數組中,稍后在處理結果時使用該數組而不是語句句柄:

$results = array();

$sth_a = $pdo->prepare(...);
$sth_a->execute(...);
while($row = $sth_a->fetch(PDO::FETCH_ASSOC))
    $results[] = $row;

$sth_b = $pdo->prepare(...);
$sth_b->execute(...);
while($row = $sth_b->fetch(PDO::FETCH_ASSOC))
    $results[] = $row;

print_r($results);

暫無
暫無

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

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