0

我在基本的 php 问题上遇到了一些麻烦,想知道是否有人可以帮助我。基本上我需要组合 2 个查询的结果,并根据键合并数组,同时保留两个查询中存在的 1 个键到 1 个值。

例如:“select * from table 1, table 2 where table1.id = table2.id”... 创建一个数组。

然后:“select * from table3, table4 where table3.id2 = table4.id2” .. 制作另一个数组。

最后: While ($res) { 用 } 打印出每一行。

关于如何处理这个问题的任何想法?伪代码非常感谢。id 之间的关系是 table1.id = table3.id 但其他 id 只是在查询中显示的表之间加入。

4

2 回答 2

3
<?php

// Merge arrays keeping keys
$new_array = array_merge($array1, $array2);

// Sort by key
ksort($new_array);

?>
于 2009-03-26T19:23:36.607 回答
2

如果您不需要单独的 2 个数组,我会在 SQL 中使用联合,这应该更快且开销更少。

例如:

"(select * from table1, table2 where table1.id = table2.id)
     UNION ALL 
 (select * from table3, table4 where table3.id2 = table4.id2)"

这确实假设两个数组的结构相同。mySQL但语法是标准 SQL 而不是 mySQL 特定的。

或者:

"Select * from ((select table1.id as id, * from table1, table2 where table1.id = table2.id)
       UNION
      (select table3.id as id, * from table3, table4 where table3.id2 = table4.id2)) as t
 ORDER BY t.id"
于 2009-03-26T19:26:11.780 回答