Supprimer doublons avec conditions

Bonjour,
Je travaille sur une base SQL de livres avec les champs suivants :
ID livre/Disponibilité fournisseur
Il arrive qu'un livre ait plusieurs fournisseurs qui ne donnent pas la même disponibilité et je voudrais supprimer ceux qui n'ont pas le stock.
Exemple :
livre1/disponible Hachette
livre1/non disponible Gallimard // à supprimer

Quelle requête utiliser ??

Merci !

6 réponses

  1. Contributeur sécurité
    Bonsoir,

    Je suppose que vous avez une table pour les livres, une pour les fournisseurs, et une de jointure ?

    Si c'est le cas, il vous suffit de regarder dans votre table jointure les livres qui ne possède plus de stock.

    Si vous n'avez pas de table de jointure, je peux vous expliquer les raisons de l'avoir, et comment réglé votre problème.

    Cordialement.
    0
    1. Voici un exemple concret de la table en question :

      id dispo ISBN stock
      6 9783897070271 1
      0 9783897070271 1

      Quand doublon, je ne veux garder
      QUE l'id dispo = 1 si existe et supprimer l'autre
      ou l'id dispo différent de 0 et supprimer id dispo = 0

      Mais j'avoue que je galère...
      0
      1. Contributeur sécurité
        Quels sont les champs de votre table de jointure, et à quoi servent-il ?

        Cordialement.
        0
        1. Je n'ai pas de table de jointure.
          - J'ai une base SQL avec mon cataloque de livres, et un champ vide "dispo"
          - J'ai une table complémentaire que j'extrais de mon logiciel de libraire en excel (celle dont je parle plus haut) et que j'importe dans ma base dans une nouvelle table
          Le champ ISBN (unique) est présent dans la table complémentaire (id dispo/ISBN/stock) et dans la table que je veux mettre à jour.

          Et j'aurais voulu une requête genre :
          DELETE champ doublon FROM table complémentaire
          WHERE iddispo différent de 1
          OR iddispo = 0

          Du genre quoi !...
          0
          1. Contributeur sécurité
            C'est ceci que vous voulez ?

            DELETE * FROM NOM_TABLE WHERE iddispo != 1 OR iddispo == 0


            Cordialement.
            0
            1. Oui, mais SEULEMENT si ISBN = doublon

              id dispo ISBN stock
              6 9783897070271 1
              0 9783897070271 1
              0