Requete multicondition multi table

cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011 - 3 févr. 2010 à 08:37
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 - 4 févr. 2010 à 09:40
Hello, Bonjour bonjour

Ma question est dans le sujet, faire une requete multiconditions, multitables.

Table jouet:
id autoincrement 11
voiture varache 100
couleur varache 100
porte varache 100

Table option:
id autoincrement 11
radio varache 100
clim varache 100
4roue varache 100

voici la requete que j'aimerais réaliser mais je plante:

select voiture, couleur, porte dans jouet where voiture='fiat' AND couleur='rose' AND porte !='1' ET select radio, cli, 4roue dans option where radio='oui' AND clim='oui' AND 4roue='non'

d'ou le resultat de la requete

fiat rose 1 oui oui non

14 réponses

cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
3 févr. 2010 à 08:39
oui enfin, le resultat de la requete ne sera pas tout a fait cela mais vous aurez je penses compris le principe
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 19
3 févr. 2010 à 10:16
Alors là, la notion à connaitre c'est Jointure SQL et là tu comprendras tout.
S.
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
3 févr. 2010 à 11:28
je connaissait pas cette fonction, elle est interessante mais je crois que c un peu plus complexe pour moi:

voici un debut de requete et la suite bug

"SELECT voiture, couleur, porte FROM jouet WHERE voiture !='' AND couleur != '' AND porte '2' AND SELECT radio FROM option WHERE voiture = voiture";


Table jouet:
id auto-increment 11
voiture varache 100
couleur varache 100
porte varache 100

Table option:
id auto-increment 11
voiture varache 100
radio varache 100
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 19
3 févr. 2010 à 11:42
Non, pas plus complexe. Si on prend en considération que voiture est la clé commune qui te permet de faire un lien (c'est bien ça ??) et si tu regardes sur l'instruction JOIN sur MySQL tu vas comprendre.
S.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
3 févr. 2010 à 11:57
oui mais j'avoue que j'ai un peu de mal
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
3 févr. 2010 à 14:29
je pige rien
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
3 févr. 2010 à 17:08
j'arrive pas, quelqu'un de gentil voudrait bien m'aider ?
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 19
3 févr. 2010 à 19:17
Que contiennent tes tables ? Il va falloir faire une jointure mais je ne comprends pas ta conception au niveau de ta base.
S.
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
3 févr. 2010 à 19:30
merci, et bien voila, j'ai deux table, la table 1 que j'ai appelé JOUET et la table 2 que j'ai appelé OPTION

Table1 JOUET:
id auto-increment 11
voiture varache 100
couleur varache 100
porte varache 100

Table2 OPTION:
id auto-increment 11
voiture varache 100
radio varache 100


"SELECT voiture, couleur, porte FROM jouet WHERE voiture !='' AND couleur != '' AND porte '2' AND SELECT radio FROM option WHERE voiture = voiture";
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 19
3 févr. 2010 à 20:14
Et c'est quoi la différence avec ce que tu as écrit au dessus ?
Le copier coller ne t'empeche pas de corriger les fautes. C'est VARCHAR et non VARACHE.
S.
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
3 févr. 2010 à 20:38
Et bien je veux que la requete me trouve par exemple la fiat (dans voiture) qui a une couleur bleu (dans couleur) qui a deux porte (dans nombre de portes) et qui a une radio (dans radio de l'autre table)
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
4 févr. 2010 à 09:05
je m'explique bien ou pas ?
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
4 févr. 2010 à 09:09
Salut,

Un ne fait pas de "AND SELECT", ça n'existe pas, ça ne se fait pas, ce n'est pas correct, il y a des UNION pour ça. Après l'union n'est pas ce que tu cherches, comme l'a très justement dit syndrael il te faut faire une jointure.

SELECT jouet.voiture, jouet.couleur, jouet.porte, option.radio FROM jouet INNER JOIN option ON jouet.voiture =  option.voiture WHERE jouet.voiture !='' AND jouet.couleur != '' AND jouet.porte '2'

Explication :

Pour éviter une ambiguïté sur certains champs (et rendre la requête plus lisible) on précise la table à laquelle appartient le champ grâce au point (nom_de_la_table.nom_du_champ).

"SELECT jouet.voiture, jouet.couleur, jouet.porte, option.radio"
=> On indique tous les champs que l'on souhaite sélectionner dans les deux tables.

"FROM jouet INNER JOIN option"
= > On indique les deux tables dans lesquelles on sélectionne et le type de jointure, ici une jointure interne.

"ON jouet.voiture option.voiture"
> On indique ici la condition de la jointure. Si cette condition est omise, on sélectionnerait le produit cartésien des deux table, ce qui mettrait le serveur sur els rotules en cas de tables bien remplies.

"WHERE jouet.voiture !='' AND jouet.couleur != '' AND jouet.porte '2'"
=> On indique les conditions de sélection.

Et bien finalement c'est pas bien dur une jointure interne non ?
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 19
4 févr. 2010 à 09:40
je m'explique bien ou pas ?

Ben non, tu ne donne pas les infos qu'il faut, on doit essayer de comprendre ton besoin et en plus d'en donner une réponse. On te donne des pistes mais ça ne suffit pas.
Tu peux remercie TychoBrahe pour sa réponse, parce que de mon coté je n'aurai pas pris autant de temps pour t'expliquer des notions que tu peux trouver partout sur le web.
Honnêtement, ce n'est pas à toi que je m'en prends mais à tes demandes. Si tu les relis tu verras que soient les personnes ne répondent pas parce qu'elles ne comprennent pas ton besoin, mais qu'au delà tu ne fournis pas assez d'informations sur les pistes que tu as déja exploité.
As-tu juste cherché ce qu'était une jointure ?
Je donne des pistes pour que tu apprennes et non des solutions toutes faites que tu ne saurais comprendre, voire reproduire.
On est tous là pour apprendre à quelqu'un et de quelqu'un.
S.
0
Rejoignez-nous