2009-03-26 10 views
0

J'ai quelques problèmes avec un problème de base de php et je veux savoir si quelqu'un peut m'aider. Fondamentalement, j'ai besoin de combiner les résultats de 2 requêtes, et de fusionner les tableaux en fonction de la clé, tout en conservant la valeur de 1 clé à 1 qui est présent dans les deux requêtes. Par exemple: "select * from table 1, table 2 où table1.id = table2.id" ... crée un tableau de ce tableau. Puis: "select * from table3, table4 où table3.id2 = table4.id2" .. crée un autre tableau.Aidez à fusionner 2 tableaux et à trier par clé

Enfin: While ($ res) {imprime chaque ligne avec}.

Des idées sur la façon de gérer cela? Pseudo code grandement apprécié. La relation entre les ids est que table1.id = table3.id mais les autres ids sont juste pour se joindre entre les tables comme présenté dans les requêtes.

Répondre

3
<?php 

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

// Sort by key 
ksort($new_array); 

?> 
2

Si vous n'avez pas besoin des 2 baies séparément, j'utiliserais une union en SQL, ce qui devrait être plus rapide et moins lourd.

par exemple:

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

Cela ne suppose la même structure pour les deux tableaux. mySQL mais la syntaxe est standard SQL pas mySQL spécifique.

ou:

"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" 
Questions connexes