Requête SQL/PHP qui marche pas ? - PHP - Programmation
Marsh Posté le 26-06-2009 à 16:29:50
regarde du coté des jointures, ca serait plus sexy et bcp plus efficace de faire ca en full sql...
Edit: ou plutot des sous requetes: qqchose du style:
Code :
|
doit pouvoir marcher (peut etre en adaptant en fonction de ton sgbd).
Marsh Posté le 26-06-2009 à 16:47:29
A adapter a ton cas :
SELECT t1.* FROM table1 t1 LEFT JOIN table2 t2 ON t1.champ1=t2.champ2 WHERE t2.champ2 IS NULL
Marsh Posté le 26-06-2009 à 17:07:35
Table 1
nom
AAA
BBB
CCC
DDD
EEE
Table 2
nom
AAA
FFF
GGG
HHH
Toutes vos requetes ci-dessus me renvoi la totalité de la Table 1 alors que logiquement la valeur AAA (étant présente dans Table 2) ne devrait pas être retournée... je pige pas ... Ce bug peut il etre lié a mon sgbd ? (pourtant en local je suis sous EasyPhp de base sans modif spé...)
Merci de votre aide
Marsh Posté le 26-06-2009 à 22:05:50
Quel est le type de base de données? MySql?
Autrement, les valeurs entre les tables sont-elles exactement les mêmes?
Pas "AAA" et "aaa", "AAA" et "AAA ", ce genre de différences?
Marsh Posté le 28-06-2009 à 13:16:16
Base MySQL oui, et pour les données elles sont exactement les mêmes (tout en majuscule).
J'ai vérifié aussi le contenu des champs ... c'est bien "AAAAA" et pas "AAAAA " ou " AAAAA " ou tout autres espace indésirable
En fait j'ai un fichier texte contenant les infos (une par ligne) et chaque enregistrement est ajouté dans la base pour comparaison ... Donc je vais voir a comparer directement le fichier txt avec la base ...
Si qq'un à une idée ... sinon demain j'attaque ca
Marsh Posté le 26-06-2009 à 16:22:06
Bonjour à tous, voila je lance le script ci-dessous pour pouvoir faire un matching entre deux tables.
Le resultat attendu serait de n'afficher les "nom" que des valeurs ne figurant pas dans la table2 ... Mais seulement voila, le num_rows me renvoi systematiquement "0", alors que certains champs sont pourtant strictement identique entre les deux tables...
Si qq'un à une idée du problème merci par avance
Cordialement