繁体   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