Bonjour à toutes et à tous.
Je doit importer des données via un fiichier CSV. Aucun problème de ce côté.
Alors j'ai une table taclist qui contient:
- VARCHAR tac un numéro
- VARCHAR manufacturer une marque
- VARCHAR model un modèle.
- VARCHAR grade, heu... différente valeur qui servent à calculer un prix
dsl je n'en dit pas plus sur ce que c'est, puisque c'est une entreprise un peu secrète, seule sur un marché.
J'ai créé une table taclist_tmp ou j'insert toutes les lignes de mon CSV (entre 20 000 et 30 000 enregistrements)
Donc ce que je veux c'est:
insert les nouveaux tac
update le grade si le grade est différent.
Ha oui il le tac peut être le même pour différent marque/modèles (ce qui complique la chose. Et pour encore plus compliqué, la marque/modèle peut avoir plusieur tacs différents. En fait la différence se fait au niveau du grade. Donc aucun doublons.
Pour le insert des new tacs, je compare les deux tables. c'est OK
Pour le update idem, c'est OK.
Mon problème est le suivant, je veux comparer les deux tables pour trouver si pour un même tac, il y a pas des marques/modèles dans taclist_tmp qui ne sont pas dans taclist.
Voici ma requête SQL:
Donc voilà cette requête fonctionne niquel sur phpMyAdmin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT LPAD(taclist_tmp.tac, 8, 0) AS TAC, taclist_tmp.manufacturer AS MANUFACTURER, taclist_tmp.model AS MODEL, taclist_tmp.grade AS GRADE, taclist.tac AS "TAC from taclist" FROM taclist_tmp LEFT JOIN taclist ON taclist.tac = LPAD( taclist_tmp.tac , 8 , 0 ) AND taclist.model = taclist_tmp.model AND taclist.manufacturer = taclist_tmp.manufacturer WHERE taclist.tac IS NULL
Mais hélas quand je l'exporte dans mon script PHP, j'ai l'erreur suivante :
erreur pas trop explicite, après recherche sur le net, je n'ai pas trouvé de réponse :s
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 0, 0, 0, 0)' at line 1
Quelqu'un aurait-il une idée pour me donner des pistes. Ou bien une requête faisant la même chose mais différente pour éviter de générer cette erreur.
Merci par avance
Partager