|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : février 2003 Messages : 4 ![]() |
Bonsoir,
Développeur confirmé Java, je débute en SQLite et je recherche depuis plusieurs heures maintenant à créer une requête que je pensai être simple J'ai 2 tables : une table A avec un id et un nom une table B avec un id et un aid Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Bonjour,
lisez ceci : http://sqlpro.developpez.com/cours/sqlaz/ensembles/ La partie sur les group by Et ceci : http://sqlpro.developpez.com/cours/sqlaz/jointures/ La partie sur les jointures externes Et si vous n'y arrivez pas avec ca, revenez avec vos essais |
|
|
00
|
|
|
#3 | ||||||||
|
Membre éprouvé
![]() Inscription : janvier 2009 Messages : 301 ![]() |
Bonjour,
Sqlite est une base de données type Access, c'est-à-dire fichier à plat ayant des possibilités de SQL. Les nouvelles versions après 3.6.3, je pense, assurent la gestion des clés étrangères. Sans être un spécialiste de cette base, une seule application significative, j'ai quelques notions qui vont pouvoir vous aider. Je ne vais pas répondre directement, mais j'ai construit un exemple en rapport avec votre demande. Sa lecture doit pouvoir vous aider. J'ai créé vos deux tables, mais en ajoutant une clé étrangère dans la table B. Nous avons : Table A(IdA, Nom) Table B(IdB, Aid, #IdA) IDA dans la table B est la clé étrangère qui reprend l'index de la table A. En reprenant vos données, j'ai établi la requête ci-dessous. Code :
Code :
Code :
Code :
Sans l'utilisation d'une clé étrangère, le décompte doit être possible avec une union des tables A et B. Je n'ai pas fait l'essai. Bon courage et A+ |
||||||||
|
|
00
|
|
|
#4 |
![]() ![]() |
Bel effort seabs mais il me semble que dans la structure donnée par Cyril_du_13, B.aid fait justement référence à l'identifiant de la table A !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#5 | ||||||
|
Invité de passage
![]() Inscription : février 2003 Messages : 4 ![]() |
Bonjour a tous,
Je fréquente très peu les forum car j'essaye toujours au plus d'être autodidacte et d'apprendre par moi même J'avais d'ailleurs réussi à avoir tout ce que je voulais mais jamais en une seule requête. Code :
SELECT COUNT(*) AS nombre,id FROM B GROUP BY aid pour le moment j'ai essayé plusieurs choses comme: Code :
Code :
Je voulais savoir quelle est la méthode classique pour faire cela en SQL que je teste si elle marche en SQLite. Ca me dérangerai de devoir faire une requête en plus par A.id dans mon application pour savoir son nombre occurrence dans la table B FYI, voici mes créations de table si cela peut vous aider: Code :
|
||||||
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
vous auriez présentez la chose comme ca j'aurai développé beaucoup plus.
Votre 2eme exemple avec une légère modification, ne fonctionne-t-il pas ? Code :
sinon il y a un sous-forum SQLite il me semble ici : http://www.developpez.net/forums/f15...s-sgbd/sqlite/ |
||
|
|
10
|
|
|
#7 |
|
Invité de passage
![]() Inscription : février 2003 Messages : 4 ![]() |
merci cela fonctionne comme cela le devrait, il s'agissait donc bien de requêtes imbriquées qu'il fallait utiliser mais l'imbrication était mal située
et je comprend mieux d'ailleurs le fonctionnement que j'obtenais du coup.Merci encore de votre aide. Cyril |
|
|
00
|
|
|
#8 | ||||||||
|
Membre éprouvé
![]() Inscription : janvier 2009 Messages : 301 ![]() |
Bonjour,
J'ai modifié mes tables pour les accorder avec les tiennes. Ma requête devient : Code :
Code :
J'ai fais mes essais avec Sqlite 3.7.6.2 et utilisé l'administrateur de bases Sqlite Expert version 3.3.22 Personal Edition qui est freeware. Pour les jointures, elles fonctionnent parfaitement avec SQlite. J'ai d'ailleurs développé une application de facturation avec bons de commande, lignes de produits, tarifs avec modifications régulières, etc. Sans utilisation des jointures, il m'aurait été impossible de conduire à son terme ce développement. Il est utilisé depuis plus de 2 ans en permanence, nous n'avons aucune anomalie. En fait, Sqlite accepte parfaitement les clés étrangères, ses faiblesses sont plutôt dans le contrôle de l'intégrité référentielle. Tu pourrais montrer le code ma requête chez toi, afin de voir pourquoi, elle retourne zéro dans la colonne Count. Edit - Complément Un essai avec la requête de @punkoff Code :
Code :
A+ |
||||||||
|
|
20
|
|
|
#9 | ||||
|
Invité de passage
![]() Inscription : février 2003 Messages : 4 ![]() |
En effet seabs ta requête marche bien
, la fois d'avant il y avait du avoir une confusion entre id et aid...et d'ailleurs je suis très dégouté car j'avais dejà fait cette requête lors de mes essais et je ne l'avais pas prise car au lieu de mettre : Code :
Code :
comme quoi les jointures ne sont vraiment pas comprises du tout dans mon cas |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com