begin process at 2008 08 29 01:25:10
1 233 465 membres
8 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : probleme de AND , = [ MySQL / Requêtes ] (sheorogath)

probleme de AND , = le 08/07/2006 16:01:12

sheorogath
Membre Club
(Admin CS)
bonjour a tous
voila m'etant mis un peu a la programmation de base de donnees en java j'ai commence le sql

j'ai trois table
le point commun de c'est table ets un meme champ id

et je voulais savoir pourquoi cette requete renvoi en double les resultat :
mysql> select visiteur.id,visiteur.ip,visite.date,infos.referer,infos.mot from visiteur,visite,infos where visiteur.id=1 and visite.id=1 and infos.id=1;
+----+-------------+---------------------+--------------------------------------
------------------+---------------+
| id | ip          | date                                     | referer                                                                             | mot           |
+----+-------------+---------------------+--------------------------------------
------------------+---------------+
|  1 | 164.34.76.1 | 2006-07-08 15:37:53 | [ Lien ] | quoi;de;neuf; |
|  1 | 164.34.76.1 | 2006-07-08 15:38:12 | [ Lien ] | quoi;de;neuf; |
|  1 | 164.34.76.1 | 2006-07-08 15:37:53 | [ Lien ]     | java;mysql;   |
|  1 | 164.34.76.1 | 2006-07-08 15:38:12 | [ Lien ]     | java;mysql;   |
+----+-------------+---------------------+--------------------------------------
------------------+---------------+
4 rows in set (0.00 sec)
j'ai essayer de remplcer visiteur.id=1 and visite.id=1 and infos.id=1 par visiteur.id = visite.id = infos.id =1

mais ca n'as rien change

voila merci d'avance
++
"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"

Re : probleme de AND , = le 08/07/2006 16:24:11

Malkuth
Membre Club
Réponse acceptée !
Le Problème Vient sans dante que tu ne passe pas par une jointure:

Une jointure est un mécanisme qui permet de faire correspondre
entre elle plusieurs table, par défaut les table ont une jointure
de type CROSSJOIN : Toutes les ligne de chaque table sont associé
a toutes les lignes des autres Tables.

Exemple :
Les tables
Tbl1:ID,DATA_A;
Tbl2 ID,FID,DATA_B;
Les Données :
   Tbl1
      ID         DATA_A
      1            10
      2            20
   Tbl2
      FID        DATA_B
      1            15
      2            25

Requette :
   SELECT Tbl1.ID,Tbl2.FID FROM Tbl1, Tbl2
OU
   SELECT Tbl1.ID,Tbl2.FID FROM Tbl1 CROSSJOIN Tbl2
Resultat :
   Tbl1.ID      Tbl2.FID
      1            1
      1            2
      2            1
      2            2

Les Jointures INNER JOIN: Ellse permette de faire correspondre
les lignes selon certains critères:







Requette :
   SELECT Tbl1.ID,Tbl2.FID FROM Tbl1 INNER JOIN Tbl2 ON Tbl1.ID=Tbl2.FID
Resultat :
   Tbl1.ID      Tbl2.FID
      1            1
      2            1
Voilà qui resemble a ce que tu veux

Il manque maintenant une condition :







Requette :
   SELECT Tbl1.ID,Tbl2.FID FROM Tbl1 INNER JOIN Tbl2 ON Tbl1.ID=Tbl2.FID WHERE Tbl1.ID=1
Resultat :
   Tbl1.ID      Tbl2.FID
      1            1

Appliquer a ta requette voilà ce que ca donnerai:
Requette :
   select
      visiteur.id,
      visiteur.ip,
      visite.date,
      infos.referer,
      infos.mot
   from
      visiteur
      INNER JOIN visite
         ON visiteur.id=visite.id
      INNER JOIN infos
         ON visiteur.id=infos.id
   WHERE
      visiteur.id=1;



Re : probleme de AND , = le 08/07/2006 16:26:42

sheorogath
Membre Club
(Admin CS)
woaw ca c'est de la reponse clair et instructive :o
merci beaucoup je teste de suite !!

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"

Re : probleme de AND , = le 08/07/2006 16:34:01

Malkuth
Membre Club
Réponse acceptée !
PS :

Les Jointures sont une des fonctionnaliter les plus importante de SQL
si tu veut avancer dans le dévelopement de base de donnée il est important
que tu recherche de la documentton sur cet aspect du sql (CROSSJoiN et INNER JOIN
ne sont pas les seules type de jointure) Va voir sur MSDN (mais attention
certaine parti sont spécifique a SQL Server), je ne connait pas de ressource
sur MySQL mais je suis sur qu'il en existe( si quelqu'un en connai ...).

bon courrage @+.

Re : probleme de AND , = le 08/07/2006 16:40:02

sheorogath
Membre Club
(Admin CS)
merci pour vos reponse
mais je viens de comprendre pourquoi j'ai les resultat en double !!!
il faut que je fasse le lien avec l'heure aussi (date)

merci bcp

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"

Re : probleme de AND , = le 08/07/2006 16:55:23

sheorogath
Membre Club
(Admin CS)
voila
apres quelques alter
quelque bug
voici a quoi ressemble la requete

String query =

"SELECT visiteur.id,visiteur.ip,visite.date,infos.referer,infos.mot "

+

"FROM visiteur "

+

"INNER JOIN visite "

+

"ON visiteur.id = visite.id "

+

"INNER JOIN infos "

+

"ON visite.date = infos.date "

+

"WHERE visiteur.id = "

+ id;

merci encore a tous

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"


Classé sous : java, and, infos, id, visiteur

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS