【问题标题】:Combine Results from Two PDO queries合并来自两个 PDO 查询的结果
【发布时间】:2011-04-03 13:22:24
【问题描述】:

我有以下行:

$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 出现在不同的列中?

谢谢。

【问题讨论】:

    标签: php mysql sql pdo


    【解决方案1】:

    你有两个选择。

    首先,如果您从每个表中选择的列具有相同的列类型,您可以use a 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-05
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多