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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  jointure requete simple sous phpmyadmin

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

jointure requete simple sous phpmyadmin

n°927084
Badze
Aime les frites
Posté le 18-12-2004 à 19:53:19  profilanswer
 

Voila, je ne comprend pas pourquoi les requetes que je fait ne marche pas, voici les tables que j'ai crée.
 
CREATE TABLE `client` (
`login` varchar(30) NOT NULL default '',
`password` varchar(30) NOT NULL default '',
PRIMARY KEY (`login`)
) TYPE=MyISAM;
 
INSERT INTO `client` VALUES ('badze', '210884');
INSERT INTO `client` VALUES ('fabien', '2108');
 
# --------------------------------------------------------
 
CREATE TABLE `message` (
`id_message` int(11) NOT NULL auto_increment,
`mess` text NOT NULL,
`login` varchar(30) NOT NULL default '',
PRIMARY KEY (`id_message`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
 
INSERT INTO `message` VALUES (1, 'salut', 'badze');
INSERT INTO `message` VALUES (2, 'vache', 'fabien');
________________________________________________________________
 
voila, normalement les tables sont relié car j'ai "login" dans les 2 tables.
N'importe quel requete que je vais faire ne va pas marché a partir du moment que je relie les 2 tables exemples:
 
select password
from client c, message m
where c.login = m.login
and mess = "salut";
 
elle ne veut rien dire mais c'est le principe qui importe. J'ai appris le sql pendant 1 an, soit on m'a appris que des conneries soit il faut faire une manipulation dans PhpMyadmin pour dire que les tables sont reliés.

mood
Publicité
Posté le 18-12-2004 à 19:53:19  profilanswer
 

n°927592
gargant0
Posté le 19-12-2004 à 20:21:42  profilanswer
 

Aucune manipulation n'est necessaire, mais essaie des simple coat.
Et sinon a la place de "=" met un "LIKE".
Si ça marche tjr pas ya un truc pour relié les table, mais normalement ça marche quand meme.
Tu va dans ta table message, et t'a une icone, en dessous de la description des attribut de la table, gerer schema relationella tu pourra dire a ton attribut login qu'il depend de login dans ton autre table.
 
Voila

n°927619
senomo
Posté le 19-12-2004 à 21:29:22  profilanswer
 

je ne vois pas où est le problème, j'ai fait un site internet ou des membre vendaient des produits, donc forcément à l'affichage de la liste des produits pour avoir le nom du vendeur on doit faire une jointure.
 
sinon ce que je te propose c'est soit de mettre un as entre client et c, message et m. sinon change le nom de l'attribut login en login1 dans la table message et change ta requête en :
 
select password
from client, message
where login = login1
and mess = 'salut'

n°927754
Badze
Aime les frites
Posté le 20-12-2004 à 02:17:05  profilanswer
 

le probleme n'est pas la requete mais phpmyadmin, il voit 2 tables mais par défault elles ne sont pas en relations. Je suis sous easyphp. En fait il ne voit pas la clé étrangere qui comme je l'ai dit n'est pas mit par défault.
Je voullai savoir comment je pouvais faire, sinon , qu'est ce que je pourrai prendre pour faire cela.
 
Autrement, c'est le meme cas avec mon fournisseur d'acces "Free", y aurai til aussi un moyen chez eux de nommé ma clé étrangere ?

n°927775
senomo
Posté le 20-12-2004 à 09:27:29  profilanswer
 

il n'y a pas de foreign key dans mysql :( hé oui c'est comme ça, à moins d'installer cygwin ou linux et bosser sous postgresql je ne vois pas d'autre moyen

n°927997
Badze
Aime les frites
Posté le 20-12-2004 à 13:16:39  profilanswer
 

Snif , c'est bien triste tout ca, bon ba on va se demerdé sans alors.
 
Merci a vous

n°928639
senomo
Posté le 20-12-2004 à 22:36:08  profilanswer
 

regarde plutôt les dernières versions de mysql ce problème a peut être été corrigé.

n°928832
rufo
Pas me confondre avec Lycos!
Posté le 21-12-2004 à 09:26:48  profilanswer
 

quand tu dis que tes requêtes marchent pas, tu peux être plus précis? T'as quoi comme messages d'erreur?

n°929242
Badze
Aime les frites
Posté le 21-12-2004 à 15:30:58  profilanswer
 

mes requetes sont tres bien, seulement le sgbd ne connait pas foreign key (clé étrangere afin de relier la table avec la clé primaire)

n°929345
rufo
Pas me confondre avec Lycos!
Posté le 21-12-2004 à 16:50:53  profilanswer
 

ben t'as qu'à faire une equi-jointure... pas besoin de foreign key.

mood
Publicité
Posté le 21-12-2004 à 16:50:53  profilanswer
 

n°936723
Badze
Aime les frites
Posté le 04-01-2005 à 15:20:23  profilanswer
 

On ne peux pas faire de jointure sous mysql. on ne peux pas faire de requetes imbriquées non plus. Mais que peut on faire appart des requetes simples.
 
Je voudrai que plusieurs de mes tables soit en relation afin de pouvoir faire tournée ce que je veux faire. que cela fonctionne comme sous Access.
 
Si il n'y a vraiment aucun moyen, faites le moi savoir. merci ;)

n°936841
rufo
Pas me confondre avec Lycos!
Posté le 04-01-2005 à 16:20:02  profilanswer
 

je te le redis : une equi-jointure.
ex : une table employes et une table Emplois avec la relation un employé à un et un seul emploi.
Table Employes : EmployeID, Nom, Prenom, EmploiID
Table Emplois : EmploiID, NomEmploi
 
ici, EmploiID est donc une clé étrangère dans la table Employes.
Pour afficher la liste des employés avec le boulot qu'ils font :
SELECT e.Nom, e.Prenom, emp.NomEmploi FROM Employes e, Emplois emp WHERE e.EmploiID = emp.EmploiID
 
Voilà, j'espère que ça répond à ta question, sinon, c'est que je n'ai pas compris ce que tu voulais faire...

n°937260
Badze
Aime les frites
Posté le 04-01-2005 à 21:21:30  profilanswer
 

Alors la chapo, merci. ca marche parfaitement
Je ne comprend vraiment pas pourquoi moi ca ne marchais pas.
Regarde ma requete ici:
 
select password  
from client c, message m  
where c.login = m.login  
and mess = "salut";  
 
elle était pourtant correct mais rien ne s'affichais. pourtant dans ce que tu ma donné, je ne vois pas vraiment de difference.
Pourrai tu m'éclairé sur mon erreur stp. merci
 
quelle est la difference entre une jointure classique et une équijointure.


Message édité par Badze le 04-01-2005 à 21:22:51
n°937512
rufo
Pas me confondre avec Lycos!
Posté le 05-01-2005 à 10:13:26  profilanswer
 

perso, pour ta table client, j'aurais mis comme clé primaire un ID (int) et non le login. En +, ça prend moins de place. Sinon pour ta requête, essaye en mettant les alias sur tous les champs, mais j'y crois pas trop :
select c.password  
from client c, message m  
where c.login = m.login  
and m.mess = "salut";
 
pour la différence entre jointuyre classique et equi-jointure, je pense que la première concerne les Join, left join, etc. alors que l'autre, c'est avec un =

n°937530
mkracing66
Posté le 05-01-2005 à 10:52:38  profilanswer
 

badze a écrit :


quelle est la difference entre une jointure classique et une équijointure.


 
Le resultat va differer...sur le nombre d enregistrements en sortie, mais je crois que cela depend souvent du champ sur lequel se fait la jointure, et surtout si il peut etre "vide"
Une jointure naturelle(ou equi-jointure => '=') donne tous les resultats , alors qu une jointure standard ne donnera que ce qui correspond parfaitement je crois bien....a verifier, mais generalement faut eviter de faire des equijointures on utilise plutot des LEFT JOIN, RIGHT JOIN, INNER, OUTER etc...
 
rufo a raison, tu devrais mettre un id pour ta table client et perso je ferais plutot une requete du style:
 
SELECT password FROM Client C LEFT JOIN Message M ON M.Login=C.Login WHERE M.Mess LIKE '%%'

n°937770
rufo
Pas me confondre avec Lycos!
Posté le 05-01-2005 à 13:28:32  profilanswer
 

le mieux, c'est d'aller sur l'aide en ligne de mysql pour voir ce que font left join, etc.


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

  jointure requete simple sous phpmyadmin

 

Sujets relatifs
Requete imriquée a l'infini ?!JS et requete SQL ?
problème requete multiple dans Mysqlun truc tout simple
[urgent] mechante requete pour experts SQLEnieme enregistrement d'une requete
[MySQL4] Requête group byProblème de renvoi d'une requète ms query dans Excel
[VBA-SQL] Requete entre une table SQL Server et une table Accesscréer un forum simple
Plus de sujets relatifs à : jointure requete simple sous phpmyadmin


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