Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1949 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Jointure MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Jointure MySQL

n°1331759
the_bigboo
Posté le 24-03-2006 à 14:46:32  profilanswer
 

Coucou , j'ai un p'tit probleme de jointure : J'ai deux tables la premiere que j'apelerai A, contient un 'account_id' champ qui fait référence au champ autoincrémenté de la table que j'appelerai B... En fait , je cherche a faire une jointure, qui me permettrai d'extraire tous les enregistrement de la table A dont le champ unique serait précisé dans la clause WHERE , mais qui m'extrairait aussi le champ 'value' de la table B dont la valeur de account_id serait celle trouvé dans les enregistrement de la table A
 
SELECT A.*,B.value As value FROM accounting As A, item As B WHERE A.item_id ='12' AND B.account_id = A.account_id_id
 
Cette requete ne m'affiche rien du tout hélas... :/ J'ai pris 12 pour l'exemple car j'ai fait la base avec 12 dans l'exemple... Pourriez vous m'expliquer SVP ?
Merci beaucoup de votr aide :jap:


Message édité par the_bigboo le 24-03-2006 à 16:10:58
mood
Publicité
Posté le 24-03-2006 à 14:46:32  profilanswer
 

n°1331789
Djebel1
Nul professionnel
Posté le 24-03-2006 à 15:34:11  profilanswer
 

ça fait quoi dans la partie PHP ? :D
 
Ca serait pas B.account_id = A.account_id a la fin de ta requete ? (au lieu de B.account_id = A.account_id_id)
 
enfin je demande au cas où quoi ^^

n°1331793
the_bigboo
Posté le 24-03-2006 à 15:35:26  profilanswer
 

ben c'est une egalité , je ne pense pas qu'il y a it d'importance...
La requete que tu vois est celle telle qu'elle est envoyée au serveur...

n°1331795
Djebel1
Nul professionnel
Posté le 24-03-2006 à 15:36:51  profilanswer
 

non mais je demande si tu as bien un champ appelé "account_id_id" dans ta table accouting, et non un champ "account_id".
 
M'enfin c'est une question conne, t'aurais un message d'erreur dans ce cas. Mais je préfère etre sur ^^

n°1331798
the_bigboo
Posté le 24-03-2006 à 15:38:05  profilanswer
 

erreur de saisie de ma part, nan c'est account_id tout court , le serveur ne renvoi pas d'erreur :D

n°1331804
Djebel1
Nul professionnel
Posté le 24-03-2006 à 15:40:48  profilanswer
 

vu que ta requete est correcte, c'est soit que "account_id" n'est pas renseigné pour cet enregistrement dans la table accounting (valeur nulle), soit que cette valeur n'existe pas dans le champ "account_id" de la table item.
 
Et ça n'a toujours rien à faire en cat PHP  ;)

n°1331825
the_bigboo
Posté le 24-03-2006 à 15:55:59  profilanswer
 

si car l'appel se fait en PHP, et que le traiement aussi, d'ailleur, il doit surement y avoir moyen de bien l'optimiser

n°1331831
Djebel1
Nul professionnel
Posté le 24-03-2006 à 15:58:51  profilanswer
 

que l'appel se fasse en PHP, ça n'a rien à voir, d'ailleurs tu vois, tu n'as meme pas besoin d'y faire mention dans ton probleme ;)
 
et je voie pas ou intervient un traitement en PHP là ^^
 
Sinon le problème vient bien de ce que je t'ai proposé ? Et pour optimiser ta requête, commence par viré le A.*, faire un select * c'est peu optimisé, en plus si tu recupes tes donnes avec mysql_fetch_row et que la structure de ta table change, la résultat de la requete sera planté.


Message édité par Djebel1 le 24-03-2006 à 16:00:51
n°1331842
smaragdus
whores, drugs & J.S. Bach
Posté le 24-03-2006 à 16:05:22  profilanswer
 

the_bigboo a écrit :

si car l'appel se fait en PHP, et que le traiement aussi, d'ailleur, il doit surement y avoir moyen de bien l'optimiser


Pour optimiser commence par faire un INNER JOIN plutôt que ton SELECT avec plusieurs table, c'est atrocement moche.
Un WHERE sert à filtrer, pas à faire des jointures.
 
Quand ça sera dans la bonne cat, je répondrais.

n°1331847
the_bigboo
Posté le 24-03-2006 à 16:09:41  profilanswer
 

smaragdus a écrit :

Pour optimiser commence par faire un INNER JOIN plutôt que ton SELECT avec plusieurs table, c'est atrocement moche.
Un WHERE sert à filtrer, pas à faire des jointures.
 
Quand ça sera dans la bonne cat, je répondrais.


oui, j'ai donc essayé :  
SELECT *
FROM accounting
LEFT JOIN item ON item.account_id = accounting.account_id
WHERE accounting.enterprise_id =12
LIMIT 0 , 30
 
Sans meilleur résultat :/

mood
Publicité
Posté le 24-03-2006 à 16:09:41  profilanswer
 

n°1331849
Djebel1
Nul professionnel
Posté le 24-03-2006 à 16:11:12  profilanswer
 

smaragdus a écrit :

Pour optimiser commence par faire un INNER JOIN plutôt que ton SELECT avec plusieurs table, c'est atrocement moche.
Un WHERE sert à filtrer, pas à faire des jointures.


ha je savais bien que j'étais une tache en SQL  :whistle:

n°1331850
the_bigboo
Posté le 24-03-2006 à 16:11:14  profilanswer
 

Voila c'est changé ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Jointure MySQL

 

Sujets relatifs
MySql : jointure externeTriple jointure MySQL
MySQL jointure directement dans MySQLAdmin[MySQL] Problème avec une requète (jointure ...)
[MYSQL] Suppression d'enregistrements avec une jointure de tableMySQL - Delete avec une jointure?
[MySQL] jointure dans syntaxe updatemysql : jointure a gauche et a droite.. est-ce fesable ?
MySQL, jointure qui fait planter MySQL .... [RESOLU][MySQL] KEY qu'est-ce que c'est | Jointure ou petites requêtes
Plus de sujets relatifs à : Jointure MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR