Comparer deux tables [PHP/Mysql] - Programmation
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.
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
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 ).
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
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.
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?