[PHP/Mysql] Comparer deux tables

Comparer deux tables [PHP/Mysql] - Programmation

Marsh Posté le 19-06-2002 à 12:24:35    

coucou
 
j'ai deux tables qui ont la meme structure avec quasiment les memes données dans chaque table
je souhaite extraire les données qui sont dans une table et pas dans l'autre
je dois me taper autant de requetes que de données dans la table? ou ya une fonction magique table_compare en php?

Reply

Marsh Posté le 19-06-2002 à 12:24:35   

Reply

Marsh Posté le 19-06-2002 à 13:26:12    

Tu peux faire une requête sur chaque table, triée. Ensuite, tu parcours chacun des 2 résultats ligne par ligne en PHP pour comparer.
 
Ou alors, un LEFT JOIN pour récupérer les champs non identiques.

Reply

Marsh Posté le 19-06-2002 à 13:54:12    

mrbebert a écrit a écrit :

Tu peux faire une requête sur chaque table, triée. Ensuite, tu parcours chacun des 2 résultats ligne par ligne en PHP pour comparer.
 
Ou alors, un LEFT JOIN pour récupérer les champs non identiques.  




 
left join? cékoidonc
en fait mes champs sont identiques, avec dans une table, ou l'autre, des lignes ne plus, que je veux isoler

Reply

Marsh Posté le 19-06-2002 à 15:30:27    

nasdak a écrit a écrit :

 
 
left join? cékoidonc
en fait mes champs sont identiques, avec dans une table, ou l'autre, des lignes ne plus, que je veux isoler  



LEFT JOIN, c'est un peu comme une jointure.
 
SELECT tbl1.Id, tbl2.Id FROM tbl1 LEFT JOIN tbl2 ON tbl1.Id=tbl2.Id;
sera identique à :
SELECT tbl1.Id, tbl2.Id FROM tbl1, tbl2 WHERE tbl1.Id=tbl2.Id;
 
sauf que, dans le premier cas, il y aura tous les éléments de tbl1.
Si un id de tbl1 n'est pas dans tbl2, tu récupèrera la ligne (id, NULL) avec le LEFT JOIN.
 
(pas sur que ce soit très clair :( ).

Reply

Marsh Posté le 19-06-2002 à 16:16:34    

non cé pas super clair :(
j'y arrive toujours pas  :cry:

Reply

Marsh Posté le 19-06-2002 à 16:32:15    

Je crois pas que MySQL conaisse les LEFT JOIN.

Reply

Marsh Posté le 19-06-2002 à 16:57:01    

si, mais ca marhce pas, en tout cas ca me permet pas de sortir les lignes qui sont dans une table et pas dans l'autre

Reply

Marsh Posté le 19-06-2002 à 17:21:03    

Et un truc du genre :
SELECT tbl1.Id, tbl2.Id
FROM tbl1
LEFT JOIN tbl2 ON tbl1.Id=tbl2.Id
WHERE tbl2.Id is NULL
 
Ca devrait te sortir tous les Id de tbl1 qui ne sont pas dans tbl2.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed