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

Langage SQL Discussion :

[sql] afficher deux champs de deux tables sans jointure


Sujet :

Langage SQL

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 310
    Points : 208
    Points
    208
    Par défaut [sql] afficher deux champs de deux tables sans jointure
    Bonjour

    - J'ai une table avec des numéro qui vont de 1 à 100
    - J'ai également une table contenant des noms de personnes

    J'aimerai pouvoir faire une requête qui m'afficherait autant de numéro que de nom de personne:

    1 aaa
    2 bbb
    3 bcd
    4 cdf
    5 dfg

    Donc j'ai essayé de faire:

    select nb, nom
    from nombre, personne
    order by nb asc, nom asc

    mais ça m'affiche n'importe quoi

    Est ce possible en sql?
    merci d'avance pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 76
    Points : 83
    Points
    83
    Par défaut
    Tout à fait normal ton résultat, tu fais un produit cartésien, cad que pour chaque ligne de nombre tu associes toutes les lignes de personnes :

    Je pense que tu as cela comme résulat

    1 aaa
    1 bbb
    1 bcd
    1 cdf
    1 dfg
    2 aaa
    2 bbb
    ...etc

    Pour la solution, je ne pense pas kil y en ait une mais si qqn a une idée, tant mieux pour toi
    Bon courage

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 310
    Points : 208
    Points
    208
    Par défaut
    oui c'est exactement ce type de résultat que j'ai
    si quelqu'un à une idée, qu'il n'hésite pas à me répondre merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juin 2002
    Messages : 66
    Points : 57
    Points
    57
    Par défaut
    tu peux toujours faire afficher le compteur de ligne de ton SGBD, par exemple sous oracle tu ajoute la colonne ROWNUM


    perso je vois pas trop l'intéret .....
    par suriosité tu pourrais nous dire pourquoi tu cherche un résultat comme ça ?

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 310
    Points : 208
    Points
    208
    Par défaut
    c'est justement pour avoir un compteur de ligne que je fais ça car sous access il n'y a rien

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Contrairement à ta demande et à ce que tu pense il faut faire une jointure...
    Dans ton cas, la table des nombres ne sert probablement à rien...

    voici une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT nom, count(*) AS nb
    FROM   personne p1
           INNER JOIN personne p2
                 ON p1.nom <= p2.nom
    GROUP  BY p1.nom
    ORDER  BY nom ASC
    Tu trouvera d'autres formultation pour différents cas de figure et des explications dans mon livre SQL décveloppement chez Campus Press aux pages 315 à 342

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre actif

    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 310
    Points : 208
    Points
    208
    Par défaut
    génial ! ça fonctionne merci
    ton livre promet je vais surement me le prendre pour m'améliorer en sql

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/07/2008, 12h04
  2. Comment afficher deux champs d'une table dans une comboBox
    Par lamia2007 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/04/2007, 08h17
  3. Comparaison entre deux champs de deux tables différentes
    Par liam81150 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/09/2005, 20h53
  4. Regrouper les infos de deux table sans jointure
    Par ricobye dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/07/2005, 09h30
  5. contrainte sur deux champs d'une table
    Par bdkiller dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 17/09/2004, 18h26

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