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

Python Discussion :

SQL Alchemy, jointure d'une table avec une liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut SQL Alchemy, jointure d'une table avec une liste
    Bonjour,

    Je débute avec SQL Alchemy sur Oracle, et je cherche à faire la chose suivante:

    J'ai une liste de contrat dans un fichier CSV (plusieurs milliers de contrats).
    A coté de ca, je requète ma table contrat. Et je ne voudrais ramener que les lignes qui correspondent aux numéros que j'ai dans mon fichier.

    Y a-t-il un moyen en utilisant un where ou un join de générer directement ce résultat ? Ou faut il que je traite mon résultat après, en comparant avec mon fichier ?

    J'utilise Python 2.7.

    Merci d'avance pour vos réponses.

    Steven

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par bstevy Voir le message
    Y a-t-il un moyen en utilisant un where ou un join de générer directement ce résultat ? Ou faut il que je traite mon résultat après, en comparant avec mon fichier ?
    Vous ne pouvez faire de "join" qu'entre deux tables de votre base de donnée(*). Pourquoi ne pas charger votre fichier CSV dans une table (temporaire?) et faire un "join" ou une "view" entre les deux?
    note: SQLAlchemy n'est pas "magique", in fine, il exécute les requêtes SQL qu'il aura construit pour vous. Si vous ne savez pas faire ce que vous voulez avec du SQL "normal" SQLAlchemy ne le pourra pas plus.
    (*) certains SGDB proposent de connecter des entités externes mais... çà se configure côté SGDB.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je n'utilise pas SQLAlchemy, mais je travaille souvent en SQL (avec sqlite3), et quand j'ai un problème comme ça à résoudre, je crée une table temporaire avec le fichier csv qui me permet d'extraire les données qui m'intéressent avec des scripts SQL. J'ai déjà aussi créé une base de données supplémentaire avec cette table, et lié cette base à la base principale avec l'instruction SQL "attach database"

    De plus, la lecture d'un fichier csv par le module csv de Python fournit une "liste de listes" qui est dans un format facile à transformer en table.

  4. #4
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut
    Bonjour et Merci pour vos réponses.

    Malheureusement, dans mon context actuel, je n'ai pas la possibilité de créer une table. Je suis sur une base en readonly.
    J'aurais les access en écriture d'ici 2-3 mois, mais en attendant, je cherchais une solution en python un peu élégante pour faire ca, car j'ai tout de même des extractions à faire.

    J'ai bien trouvé la formulation en SQLAlchemy, mais cela revient à faire un "in" et donc me limite à 1.000 élements.
    Donc il faut que je vois si l'utilisation de l'index me faciliterai le travail et s'il vaut mieux donc que je boucle 1.000 par 1.000 ou s'il faut que je fasse tourner tout sans utiliser l'index.
    Mais à partir de là, ce n'est plus vraiment une problématique Python.

    Merci en tout cas d'avoir pris le temps de me répondre.

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50
  5. Réponses: 6
    Dernier message: 30/08/2007, 16h47

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