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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu]Union?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu]Union?

n°1936796
milootoolo​o
Posté le 01-11-2009 à 16:25:53  profilanswer
 

Bonjour,
 
Je fait un système d'objets ayant des propriétés qui peuvent êtres de plusieurs type avec mySQL.
Certaines propriétés  sont fondamentales et communes à tout les objets:
J'ai donc créé une table objets du genre : id(int),x(int),y(int).  
 
Pour les propriétés appartenant à un sous type d'objet particulier, j'ai des tables comme celles ci:
 
object_property_int: id(int), property_name(varchar50) et property_value(int)
object_property_datetime: id(int), property_name(varchar50) et property_value(datetime)
object_property_varchar100: id(int), property_name(varchar50) et property_value(varchar100)
 
Donc pour résumer un objet est au moins 1 élément dans la table objets et 0 ou plusieurs entrées dans les tables object_property.
 
Pour charger mes objets, je fait une requete sur objets qui va me permettre de charger les données essentielles,
puis je souhaite faire une requete sur mes tables de propriétés pour remplir les autres champs.
 
J'ai déja deux requetes pour charger une liste d'objets, je souhaite savoir si il y a un moyen de combiner mes résultats sur les tables property de manière à ne faire qu'une requete au lieu de trois (une par table property)
 
 
Union me semblait très bien mais il faut les memes types dans les trois tables..
Une jointure me combine mes résultats..
 
J'aurais souhaité des résultats de ce type :
 
id pn     pv1  pv2    pv3
1  nb     3    NULL  NULL
1  text   NULL toto  NULL
1  date  NULL NULL 22/8/...
 
Où les pn sont les property name fusionnés et les pv les valeurs selon leur type
 
Une idée?
 
Merci à vous


Message édité par milootooloo le 01-11-2009 à 19:34:53
mood
Publicité
Posté le 01-11-2009 à 16:25:53  profilanswer
 

n°1936842
milootoolo​o
Posté le 01-11-2009 à 19:33:56  profilanswer
 

Bon, J'ai trouvé quelque chose qui marche:
 
 SELECT id, pn, pv1, NULL AS pv2, NULL AS pv3, NULL AS pv4
FROM object_property_int
WHERE object_property_int.id
IN ( '1' )
UNION SELECT id, pn, NULL AS pv1, pv2, NULL AS pv3, NULL AS pv4
FROM object_property_text
WHERE object_property_text.id
IN ( '1' )
UNION SELECT id, pn, NULL AS pv1, NULL AS pv2, pv3, NULL AS pv4
FROM object_property_datetime
WHERE object_property_datetime.id
IN ( '1' )
UNION SELECT id, pn, NULL AS pv1, NULL AS pv2, NULL AS pv3, pv4
FROM object_property_varchar100
WHERE object_property_varchar100.id
IN ( '1' )
LIMIT 0 , 30


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

  [Résolu]Union?

 

Sujets relatifs
[Résolu] Tri d'une matrice[RESOLU] Probleme couleur PC et MAC en HTML!! HELP PLZ :)
japplet petit soucis d'appel :/[Résolu][Trigger] mise a jour d'un champ lors de l'uptate d'un autre
[Resolu][SOAP][PHP] Utilisation des paramètres[RESOLU]Plusieurs requetes SQL en une seul sous forme de tableau
[RESOLU]Modifier la mise en forme selon onClick[Résolu] Order By et Union
[MYSQL] [RESOLU] avec UNION, comment "créer" un champs ?[C] Possible de faire un extern sur une union de struct [RESOLU] ?
Plus de sujets relatifs à : [Résolu]Union?


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