【问题标题】:PHP: combine two queries into one or two query results into a single array?PHP:将两个查询组合成一个或两个查询结果到一个数组中?
【发布时间】:2014-07-06 03:25:38
【问题描述】:

是否可以执行单个查询并从两个表中检索值,如以下伪代码?

SELECT table1.Key, table2.Id
 FROM table1, table2
 INNER JOIN table2
 ON table1.text=table2.text AND table1.amount = table2.amount
WHERE …

如果没有,我基本上需要做的是对表进行两次连续查询,然后将结果合并到一个(json_encoded)数组中,这样

数组 1(第一个查询):[{"Key":"63058"},{"Key":"63059"},…

数组2(第二次查询):[{"id":"1010","amount":"5820"},{"id":"1011","amount":"6820"}, …

变成

[{"Key":"63058", "id":"1010","amount":"5820"},{"Key":"63059", "id":"1011","amount":"6820"}, …

实现这一目标的最简单方法是什么?

【问题讨论】:

    标签: php arrays inner-join


    【解决方案1】:

    您不应两次列出table2。它应该只是在JOIN 子句中,而不是FROM 子句中。否则,您的查询是正确的——这是连接两个(或多个)表并从它们返回值的正常方法。所以应该是:

    SELECT table1.Key, table2.Id
    FROM table1
    INNER JOIN table2
    ON table1.text=table2.text AND table1.amount = table2.amount
    WHERE …
    

    【讨论】:

      猜你喜欢
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      相关资源
      最近更新 更多