Casse tête MySQL


dop20vt
WRInaute impliqué
WRInaute impliqué
 
Messages: 586
Inscription: 23 Juin 2007

Casse tête MySQL

Message le Mar Mar 04, 2008 17:10

Bonjour,

J'ai 3 tables "commande" "stock" "occasion" contenant chacune les mêmes champs "marque" "modele" "version".

Chaque table peut contenir des enregistrements ayant la même "marque". Certaines tables peuvent contenir plus de marques différentes que d'autres.

Je veux obtenir toutes les marques DISTINCTES contenues dans l'ensemble de ces 3 tables.

Vous avez 2H !! A vos claviers :)


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 911
Inscription: 5 Aoû 2003

Message le Mar Mar 04, 2008 17:55

facile :

Code: Tout sélectionner
  SELECT `marque` FROM `occasion` GROUP BY `marque`
UNION
  SELECT `marque` FROM `commande` GROUP BY `marque`
UNION
  SELECT `marque` FROM `stock` GROUP BY `marque`

j'ai bon ?

:-)


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Mar Mar 04, 2008 17:55

tout simplement avec
Code: Tout sélectionner
SELECT DISTINCT marque FROM `commande`, `stock`, `occasion`


dop20vt
WRInaute impliqué
WRInaute impliqué
 
Messages: 586
Inscription: 23 Juin 2007

Message le Mar Mar 04, 2008 19:11

julienr : clap clap !! merci :)

webmasterlamogere : t'es nul :P mais merci qd meme :)


EDIT : question annexe, avec `marque` ou marque ca fonctionne ! Quel est l'intérêt de mettre `marque` ?


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 911
Inscription: 5 Aoû 2003

Message le Mar Mar 04, 2008 19:24

on le dit souvent ici les ` protègent des noms qui sont aussi des mots réservé de mysql
marque fonctionne avec ou sans
mais par exemple
date ne fonctionnera qu'avec


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18812
Inscription: 8 Aoû 2004

Message le Mar Mar 04, 2008 20:12

perso, je n'aurais fait qu'une seule table, en ajoutant un champ état (stock, commande et occasion)


dop20vt
WRInaute impliqué
WRInaute impliqué
 
Messages: 586
Inscription: 23 Juin 2007

Message le Mar Mar 04, 2008 21:22

julienr a écrit:on le dit souvent ici les ` protègent des noms qui sont aussi des mots réservé de mysql
marque fonctionne avec ou sans
mais par exemple
date ne fonctionnera qu'avec


Merci pour l'info :wink:


dop20vt
WRInaute impliqué
WRInaute impliqué
 
Messages: 586
Inscription: 23 Juin 2007

Message le Mar Mar 04, 2008 21:25

Leonick a écrit:perso, je n'aurais fait qu'une seule table, en ajoutant un champ état (stock, commande et occasion)


Effectivement mais c'est déjà des belles tables de plus de 10 000 entrées et ce n'est que le début !! De plus le site est bien séparé en 3 catégories !! Cette requête la est pour faire une recherche globale !!

petit-ourson
WRInaute impliqué
WRInaute impliqué
 
Messages: 855
Inscription: 31 Mai 2004

Message le Mar Mar 04, 2008 21:40

Quelle modélisation...


Marie-Aude
Modérateur
Modérateur
 
Messages: 11173
Inscription: 5 Juin 2006

Message le Dim Mar 09, 2008 22:29

Raison de plus pour faire une structure de table correcte.
Les informations uniques ne se dupliquent pas dans les tables, ton identifiant de base est la "version" qui appelle un modèle qui appelle une marque.

Avec un id unique pour cette "version de modèle de marque" dans tes trois tables.

Quant tu auras 20.000 enregistrements incohérents, tu auras plus de difficultés à revenir en arrière


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités