J'ai 2 tables: Utilisateur et Image. La table d'image a la clé de l'utilisateur. Donc, fondamentalement, chaque utilisateur peut avoir plusieurs images, et chaque image appartient à un utilisateur. Maintenant, j'essaye de faire la requête suivante: Je veux sélectionner toutes les informations d'utilisateur plus le nombre total d'images qu'il a (même si c'est 0). Comment puis je faire ça? Probablement cela semble assez simple, mais j'essaie et j'essaie et je n'arrive pas à trouver la bonne question. La seule chose que je pourrais sélectionner est cette information, mais seulement pour les utilisateurs qui ont au moins une image, ce qui signifie que la table Pictures a au moins un enregistrement pour cette clé ... Mais je veux aussi considérer les utilisateurs qui n'en ont pas . Une idée? Merci!Requête MySQL: tous les enregistrements d'une table plus le compte d'une autre table
3
A
Répondre
7
Vous pouvez essayer ce qui suit:
SELECT u.name,
IFNULL(sub_p.total, 0) num
FROM users u
LEFT JOIN (SELECT COUNT(*) total, user_id
FROM pictures
GROUP BY user_id
) sub_p ON (sub_p.user_id = u.user_id);
Cas de test:
CREATE TABLE users (user_id int, name varchar(10));
CREATE TABLE pictures (user_id int);
INSERT INTO users VALUES (1, 'Joe');
INSERT INTO users VALUES (2, 'Peter');
INSERT INTO users VALUES (3, 'Bill');
INSERT INTO pictures VALUES (1);
INSERT INTO pictures VALUES (1);
INSERT INTO pictures VALUES (2);
INSERT INTO pictures VALUES (2);
INSERT INTO pictures VALUES (2);
Résultat:
+-------+-----+
| name | num |
+-------+-----+
| Joe | 2 |
| Peter | 3 |
| Bill | 0 |
+-------+-----+
3 rows in set (0.00 sec)
2
SELECT u.name, COUNT(p.picture) AS number
FROM User u
LEFT JOIN Picture p
ON u.id = p.userid
GROUP BY p.userid
Questions connexes
- 1. Comment supprimer tous les enregistrements d'une table ayant des enregistrements correspondants dans une autre table
- 2. Utilisez gréer tous les enregistrements dans une table MySQL
- 3. Distinct requête MySQL retourner tous les enregistrements
- 4. SQL: Insérer tous les enregistrements d'une table vers une autre table sans les colonnes spécifiques
- 5. Supprimer tous les enregistrements d'une table
- 6. Comment sélectionner tous les enregistrements d'une table qui n'existent pas dans une autre table?
- 7. SQL pour mettre à jour les enregistrements d'une table avec des enregistrements d'une autre table?
- 8. Suppression de tous les enregistrements d'une table qui n'existe pas dans une autre table
- 9. MySQL Left Outer Joindre avec Count à partir de la table jointe, Afficher tous les enregistrements
- 10. requête MySql pour trouver les enregistrements ne sont pas présents dans une autre table
- 11. SQL pour supprimer les enregistrements les plus anciens d'une table
- 12. Copier le résultat d'une requête dans une autre table mysql
- 13. mysql le plus rapide 2 requête de table
- 14. MySQL comment supprimer des enregistrements dans une table qui sont dans une autre table
- 15. requête multi-table mysql
- 16. Comment récupérer tous les enregistrements qui n'ont aucune référence dans une autre table?
- 17. mysql :: insérer dans la table, les données d'une autre table?
- 18. Comment puis-je récupérer des enregistrements d'une table et des enregistrements associés d'une autre table dans une requête?
- 19. Sélectionnez les enregistrements avec une sous-chaîne d'une autre table
- 20. Insérer des enregistrements dans une table MySQL en fonction des valeurs existantes dans une autre table
- 21. Requête MySql avancée: Mettre à jour la table avec les informations d'une autre table
- 22. Sélectionnez uniquement les enregistrements les plus récents de la table et rendez-le RAPIDE, comment?
- 23. MYSQL - Requête pour vérifier contre autre table (difficile à expliquer ...)
- 24. Récupérer tous les enregistrements d'une table avec nHibernate
- 25. Requête MySQL joignant les données de table
- 26. Copie de données de table MySQL dans une autre table
- 27. Comptage des enregistrements d'une table avec plusieurs clés étrangères (MySQL)
- 28. Type de table MySql, comment dessiner automatiquement les données d'une table d'une table à une autre?
- 29. MySQL: Compter les enregistrements d'une table et en mettre à jour une autre
- 30. Requête MySQL pour sommer des valeurs dans une autre table
S'il vous plaît publier la requête que vous avez jusqu'à présent. –