IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Delete avec jointure sur deux tables


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut Delete avec jointure sur deux tables
    Bonjour,

    J'ai fait une requete où je retrouve des enregistrements que je dois supprimer.
    mais ma requete ne fonctionne qu'en select et pas en delete from.
    j'ai des enregistrements à supprimer dans les 2 tables, car ils sont liés.
    Je n'ai pas la possibilité de faire une table puis l'autre.
    J'ai des champs non utilisés et je pensais faire un update d'abord et ensuite aller sur chaque table faire un delete, mais je n'arrive pas non plus à le faire ....
    si vous pouvez m'aider ça me rendrait grandement service. ( j'avais plus l'habitude de faire cela avec mssql)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select distinct(f_lig.cd_facid)
    from f_lig,f_fac
    where fac_num is null and lig_date='13/07/2005'
    and lig_tp_lig <>'G' and lig_tp_lig <>'A'
    and cd_reg is null and fac_annul is null;

  2. #2
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    Bonjour,

    Faites un screen du retour de votre requête d'un peu du contenu des tables.

    En plus, vous utilisez deux tables et aucune jointure à ce que je vois ?

    ...

    EDIT : Des alias aussi simplifieront la tache de compréhension.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut
    Bonsoir, celle-la est ma première requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select distinct(f_fac.cd_facid),
    lig_date,
    fac_num,
    cd_soin,
    cd_forf,
    cd_abon,
    cd_bout,
    cd_reg 
    from f_fac left join f_lig 
    on f_lig.cd_facid=f_fac.cd_facid 
    where fac_num is null 
    and lig_date<'31/12/2005';
    et le select est exact.
    Images attachées Images attachées  

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut
    ou bien comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select distinct(f_fac.cd_facid) Idfacture,
    lig_date dateLigne,
    fac_num numerofacture,
    cd_soin lignesoin,
    cd_forf ligneforfait,
    cd_abon ligneabonnement,
    cd_bout ligneboutique,
    cd_reg lignereglement 
    from f_fac left join f_lig 
    on f_lig.cd_facid=f_fac.cd_facid 
    where fac_num is null 
    and lig_date<'31/12/2005';
    Images attachées Images attachées  

  5. #5
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Pour faire un delete il faut que tu utilises la syntaxe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE * FROM table_supprimer WHERE champ IN (SELECT champ FROM table_reference INNER....)
    Sinon tu ne pourras pas supprimer...

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Par défaut
    Bonjour,
    Merci
    j'ai fait ce que vous m'avez demandé, mais j'ai une violation de contrainte

    Erreur SQL : ORA-02292: violation de contrainte (BALNEARIO.FK_F_LIG_LIG_FAC_F_FAC) d'intégrité - enregistrement fils existant
    02292. 00000 - "integrity constraint (%s.%s) violated - child record found"
    *Cause: attempted to delete a parent key value that had a foreign
    dependency.
    *Action: delete dependencies first then parent or disable constraint.
    je crois que je vais devoir les supprimer à la main.... qu'en est-il ?

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête SELECT avec jointure sur deux tables
    Par bud64 dans le forum Requêtes
    Réponses: 6
    Dernier message: 01/10/2010, 14h06
  2. [Requête] Jointure sur deux tables.
    Par Invité dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/11/2007, 11h36
  3. Jointure sur deux tables
    Par shinji_rem dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/04/2007, 10h18
  4. [c#]commande Select avec jointure de deux tables
    Par chorokari dans le forum Accès aux données
    Réponses: 6
    Dernier message: 18/10/2006, 14h47
  5. Jointures sur deux tables
    Par spirou dans le forum Requêtes
    Réponses: 6
    Dernier message: 31/05/2006, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo