|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 12 ![]() |
J'ai deux tables:
- announcements . announcement_id . date_begin . date_exp . sujet - announcement_user . announcement_id . user_id . is_deleted Qd le user se connecte, il accede directement a la page d'annonces avec la liste des annonces actives qu'il n'a pas efface lui meme. Et c'est unique;ent quand il se connecte a la page d'annonce qu'on ajoute les lignes dans la table annonce_user. En gros, ca veut dire que y a pas de ligne dans la table user s'il n'est pas entre dans le site encore. C'est ce qui me complique la vie. Bref, je veux sortir la liste des annonces actives qu'il n'a pas efface. et J'y arrive pas. J'ai cette requete qui marche pour le moment (le 735, je l'ai impose en dur, parce que j'aurai l'id du user a partir du site, donc on peut laisser je pense). select id, sub, is_deleted, user_id from (select ANN.announcement_id id, ANN.subject sub, ANN.body, nvl(TAB.is_deleted, 0) is_deleted, 735 as user_id from (select announcement_id, 735 as user_id, is_deleted from announcement_user where user_id = 735 ) TAB, announcements ANN where ANN.announcement_id = TAB.announcement_id (+) and date_begin <= sysdate and sysdate <= date_exp) POURVOIR where is_deleted = 0 mais je crois que je me complique la vie... y a moyen de simplifier???? |
|
|
00
|
|
|
#2 | ||||
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Si j'ai bien compris la situation alors voici deux possibilités où :user_id est l'identifiant fourni par l'application (735 dans votre exemple)
Code :
Code :
|
||||
|
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 12 ![]() |
Effectivement, j'ai pu utiliser votre requete,
Code :
Un GRAND GRAND MERCI :-) |
||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Vaut mieux utiliser l'écriture ANSI maintenant qu'Oracle le supporte parce que tous les SGBD tendent vers cette norme
|
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Philippe CHIRCOPChef de projet Inscription : juin 2007 Messages : 1 109 ![]() |
Citation:
__________________
Garuda गरूड Brahmâ la Guerre et Vishnu la Paix Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010 |
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
à la rigueur, mais l'écriture ANSI a beaucoup plus de bugs, même en 10gR2. Elle est également à éviter par exemple si l'on crée une vue matérialisée de type Fast-Refreshable.
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Je ne savais pas
|
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
en tout cas aucune vue interne ne l'employe
Code :
|
||
|
00
|
|
|
#9 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Il se dit que la 12 n'acceptera plus le (+)
|
|
|
00
|
|
|
#10 | |||
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Bien entendu !
|
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
Il y a une grande différence cependant entre /*+RULE*/ et (+)
Si le RBO est supprimé dans une prochaîne version, alors /*+RULE*/ sera sans effet. En aucun cas le résultat de la requête ne peut changer (sinon c'est un bug de prio 1). Si le (+) était supprimé, alors toutes les requêtes qui employent (+) se planteraient ou retournerait de mauvais résultats. Je peux sans trop de risque de mon tromper que le + ne sera jamais supprimé. Au pire plus supporté (dans 10 ans), mais supprimé jamais. A mon humble avis... |
|
00
|
|
|
#13 | |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Citation:
Personnellemnt, je n'aime pas du tout la syntaxe "inner join" et je préfère la liste des tables séparées par des virgules. Concernant la jointure externe je préfère, par contre, la nouvelle syntaxe qui permet des choses que le (+) ne peut pas exprimer. Même si cette syntaxe a encore des bugs comme tu l'as bien signalé. En ce qui concerne le "maintien" de la syntaxe (+) je crois que tu as raison ... |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com