Bonjour tout le monde.
Je réalise un espace membre en php et j'ai besoin de faire une jointure de table (je préciserai pourquoi après), seulement, j'ai vraiment du mal avec la syntaxe de cette notion alors ma console (je fais mes tests en console) me dit que j'ai des erreurs de syntaxe.
Alors explication du problème :
j'ia des membres qui sont reconnus par un ID (clef primaire), et dont j'ai enregistré la date de la "dernière vue" des messages personnels.
J'ai une autre table qui contient les messages personnels, ID (primaire), idSender(clé étrangère->user), idReceiver(clé étrangere->user) , message et SendDate
Mon but est de savoir s'il y a eu des messages depuis la dernière visite du membre, je fais donc ça :
SELECT COUNT(mess.message) AS nbMessage FROM messagerie mess INER JOIN u user ON mess.idReceiver=u.id AND mess.sendDate>u.lastView
la console me revoie l'erreur :
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 'INER JOIN u user ON mess.idReceiver=u.id AND mess.sendDate>u.lastView' at line 1
Ca veut dire que tu n'as pas de colonne message dans mess...
Et pour changer le nom de la table, je suis pas sûre qu'y ait moyen en fait. Je pense que le plus simple est de recréer une table, transférer les lignes puis effacer user.
effectivement (j'avais pas vu), mon champs c'est "corps"...
m'enfin pour ce que ça change : j'obtiens "2" en résultat : problème, seul un champ a été inséré dans la table.
ok, je vois pas pourquoi je fais un produit carthésien (sans compter que je mets select count(mess.corps)
sinon, j'avais effectivement remarqué qu'en mettant Where (ou AND) idReceiver=1, ça fonctionnait.
merci de votre aide.
Le COUNT n'y change rien, cette fonction ne fait que compter les lignes après le produit cartésien fait.
En gros, c'est parce que dans ta deuxième requête, tu n'as aucune condition de jointure. Tu sélectionnes les lignes où l'id est égal à 1 et mess.sendDate > u.lastView, mais après, le SGBDR ne sait pas quoi faire avec cette jointure. Donc il fait un produit cartésien : il colle chaque ligne de la table messagerie avec chaque ligne de la table user qui respecte la condition.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Des tutos surtout et gratuit|Déboguez php|Un cours sur ASP.NET MVC
Tutoriel complet MySQL !
Des tutos surtout et gratuit|Déboguez php|Un cours sur ASP.NET MVC
Tutoriel complet MySQL !
Des tutos surtout et gratuit|Déboguez php|Un cours sur ASP.NET MVC
Tutoriel complet MySQL !
Des tutos surtout et gratuit|Déboguez php|Un cours sur ASP.NET MVC
Des tutos surtout et gratuit|Déboguez php|Un cours sur ASP.NET MVC
Des tutos surtout et gratuit|Déboguez php|Un cours sur ASP.NET MVC