Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Requete SQL svp
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  6 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Stéphane Santon  
View profile   Translate to Translated (View Original)
 More options Jun 13 2012, 6:20 pm
Newsgroups: fr.comp.applications.sgbd
From: Stéphane Santon <news...@team-santonum.com>
Date: Thu, 14 Jun 2012 00:20:22 +0200
Local: Wed, Jun 13 2012 6:20 pm
Subject: Requete SQL svp
Bonjour,

Sous MySQL, j'ai :
- une table typeoptions {
  id_typeoption : bigint,
  titre: varchar
  }
- une table options {
  id_option: bigint,
  objet: enum( 'article', 'rubrique', 'etablissement'),
  id_objet: bigint,
  active: enum ('non', 'oui', 'rubrique')
  }

Une option peut avoir les valeurs 'non', 'oui', ou 'rubrique' qui
signifie qu'elle h rite de l' tat de l'option affect e sa rubrique
(on prendra 5 ici par exemple), que l'on retrouve dans la m me table :
- dans l'enregistrement (objet = 'rubrique', id_objet = sa_rubrique)
ou d faut
- dans l'enregistrement (objet = 'rubrique', id_objet = 0)

Je cherche la requ tre SQL correspondante qui permet d'extraire les
options dont active est 'oui', ou, 'rubrique' et que le active de
rubrique est 'oui' (h ritage)...

Dans le genre...

SELECT o.id_option, o.active, h.active
FROM options AS o
JOIN options as h
ON
  (o.active = 'oui') OR
  ( (o.active = 'rubrique') AND (h.objet = 'rubrique) AND (h.active =
'oui') )

Merci !

--
St phane

Jeune Chambre Economique de Saintes  *** http://www.jce-saintes.org
Agitateurs d'id es... acc l rateurs de talents !

BTS Electrotechnique *** http://enselec.santonum.eu


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
pif34  
View profile   Translate to Translated (View Original)
 More options Jun 14 2012, 2:17 am
Newsgroups: fr.comp.applications.sgbd
From: pif34 <pi...@nospam.fr.invalid>
Date: Thu, 14 Jun 2012 08:17:07 +0200
Local: Thurs, Jun 14 2012 2:17 am
Subject: Re: Requete SQL svp
Le 14/06/2012 00:20, St phane Santon a crit :

pour ce que j'ai compris, ta requ te est pas male, il manque peut tre
une jointure ouverte correctement crite:
from .....
        left outer join .... on o.x = h.y
where (o.active = 'oui') or (..... )

sinon, tu peux faire la meme chose avec un 'in' et une sous requ te,
mais en g n ral c'est plus couteux en terme de perfs...


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Stéphane Santon  
View profile   Translate to Translated (View Original)
 More options Jun 15 2012, 3:51 pm
Newsgroups: fr.comp.applications.sgbd
From: Stéphane Santon <news...@team-santonum.com>
Date: Fri, 15 Jun 2012 21:51:38 +0200
Local: Fri, Jun 15 2012 3:51 pm
Subject: Re: Requete SQL svp
Bonjour,

J'ai pas mal ramé, mais à force d'essais pas à pas...

Voici ma table :
id_option; objet; id_objet; id_typeoption; active

1       etabliss        0       2       rubrique
2       etabliss        0       3       rubrique
3       etabliss        0       4       rubrique
4       etabliss        0       5       non
5       rubrique        0       2       oui
6       rubrique        0       3       oui
7       rubrique        0       4       oui
8       rubrique        0       5       non
9       etabliss        0       6       rubrique
10      rubrique        0       6       oui
11      etabliss        106     3       rubrique
12      etabliss        106     6       oui

Je cherche un id_option pour lequel :
- objet est défini, et
- id_objet est défini, et
- id_typeoption est défini, et

- active vaut 'oui'
OU
- (active vaut 'rubrique'
  ET il existe un enregistrement "d'héritage" pour lequel
    objet vaut 'rubrique' et
    id_objet vaut 0 et
    active vaut 'oui'

J'ai un résultat correct avec :

SELECT
  o.id_option,
  o.objet, o.id_objet, o.active,
  h.objet, h.id_objet, h.active
FROM
  mobidev_options AS o
LEFT OUTER JOIN
  mobidev_options AS h
ON (h.objet = o.active) AND (h.id_objet = 0) and (h.id_typeoption = 3)
WHERE (o.objet = 'etablissement') AND (o.id_objet = 106) and
(o.id_typeoption = 3)

Est-ce correct, est-ce optimisable en perfs ??

Merci

--
Stéphane

Jeune Chambre Economique de Saintes  *** http://www.jce-saintes.org
Agitateurs d'idées... accélérateurs de talents !

BTS Electrotechnique *** http://enselec.santonum.eu


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
pif34  
View profile   Translate to Translated (View Original)
 More options Jun 15 2012, 4:25 pm
Newsgroups: fr.comp.applications.sgbd
From: pif34 <pi...@nospam.fr.invalid>
Date: Fri, 15 Jun 2012 22:25:31 +0200
Local: Fri, Jun 15 2012 4:25 pm
Subject: Re: Requete SQL svp
Le 15/06/2012 21:51, Stéphane Santon a écrit :

je captue pas pourquoi y'a des valeurs en dur genre id_type_option = 3 ?
ta jointure devrait plutot etre du genre:
  t1 left outer join t2 on t1.id_de_ma_fk = t2.id_de_ma_pk and t2.objet
= 'rubrique' and t2.active = 'oui' ...

ta requête reflete pas ton contenu..

par ailleurs, si tu veux un coup de main, faut qu'à un moment donné on
comprenne le schéma: quelle est l'autojointure, quelles sont les PK et
les FK....


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Stéphane Santon  
View profile   Translate to Translated (View Original)
 More options Jun 15 2012, 4:43 pm
Newsgroups: fr.comp.applications.sgbd
From: Stéphane Santon <news...@team-santonum.com>
Date: Fri, 15 Jun 2012 22:43:10 +0200
Local: Fri, Jun 15 2012 4:43 pm
Subject: Re: Requete SQL svp
pif34 a écrit :

> je captue pas pourquoi y'a des valeurs en dur genre id_type_option = 3 ?
> ta jointure devrait plutot etre du genre:
>   t1 left outer join t2 on t1.id_de_ma_fk = t2.id_de_ma_pk and t2.objet =
> 'rubrique' and t2.active = 'oui' ...

> ta requête reflete pas ton contenu..

> par ailleurs, si tu veux un coup de main, faut qu'à un moment donné on
> comprenne le schéma: quelle est l'autojointure, quelles sont les PK et les
> FK....

Parce que les valeurs en dur ne sont pas le coeur du problème à mon
avis, j'ai donc simplifié par une constante.
PK / FK je ne comprends pas....

Voici l'essence :

J'ai des objets de type rubrique, articles, etabliss, ... chacun
identifié par un id_objet.

Pour un objet identifié donné (ici objet = 'etabliss', et id_objet =
106), je cherche à savoir s'il existe une option identifiée attachée
dans la table options décrite.

L'option peut être directe : active = 'oui' ou 'non'
ou indirecte, héritée du type d'objet : active = 'rubrique'.
Si l'option est héritée, je veux récupérer la vraie valeur de l'option
dans la table.

Exemples :

Pour l'établissement 106, le typeoption 6 est active, on le sait
directement par l'id_option récupéré /12/

Pour l'établissement 106, le typeoption /3/ est définie par l'option
des rubriques, on le sait par l'id_option récupéré /11/.
Il faut alors joindre l'enregistrement de la même table pour lequel
objet = 'rubrique' et id_typeoption = 3 (et id_objet = 0).
On trouve alors 'oui' par l'id_option '6'

On récupère alors un unique enregistrement :
id_option       objet   id_objet        active  objet   id_objet        active
11      etablissement   106     rubrique        rubrique        0       oui

--
Stéphane

Jeune Chambre Economique de Saintes  *** http://www.jce-saintes.org
Agitateurs d'idées... accélérateurs de talents !

BTS Electrotechnique *** http://enselec.santonum.eu


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
pif34  
View profile   Translate to Translated (View Original)
 More options Jun 16 2012, 8:05 am
Newsgroups: fr.comp.applications.sgbd
From: pif34 <pi...@nospam.fr.invalid>
Date: Sat, 16 Jun 2012 14:05:42 +0200
Local: Sat, Jun 16 2012 8:05 am
Subject: Re: Requete SQL svp
Le 15/06/2012 22:43, Stéphane Santon a écrit :

> PK / FK je ne comprends pas....

clé primaire, clé étrangère

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »