renvoyer les lignes par la famille avec sql

voix
2

Ceci est ma première question stackoverflow alors soyez gentil avec moi :)

J'ai une table qui a une famille de colonne, quand je fais une requête (avec un où statment) je veux montrer les résultats en tant que groupe de lignes avec la même famille

par exemple la table est le magasin:

+----+--------+-------+
| id | family | money |
+----+--------+-------+
|  1 |      1 |   100 |
|  2 |      1 |    70 |
|  3 |      2 |    10 |
|  4 |      2 |    20 |
|  5 |      3 |    50 |
+----+--------+-------+

Donc, je veux lors de l'exécution d'une requête comme celle-ci:

SELECT * FROM shop where money=100 --(adding to the query of course what's needed)

il sélectionnera ces deux:

+-----+----------+---------+
| id  |  family  |  money  |
+-----+----------+---------+
| 1   |       1  |    100  |
| 2   |       1  |     70  |
+-----+----------+---------+
Créé 27/11/2018 à 15:11
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

Vous pouvez utiliser une sous - requête corrélée avec Exists():

SELECT
  t1.*
FROM shop t1
WHERE EXISTS (SELECT 1 FROM shop t2
              WHERE t2.family = t1.family AND 
                    t2.money = 100)
Créé 27/11/2018 à 15:21
source utilisateur

voix
1

Vous pouvez utiliser inou exists:

SELECT s.*
FROM shop 
WHERE s.family IN (SELECT s2.family FROM shop s2 WHERE s2.money = 100);
Créé 27/11/2018 à 15:15
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more