Salutations, j'ai une requête avec laquelle je lutte, c'est la première fois que je rencontre ce type de requête. J'ai deux tables comme illustré ci-dessous.
xid est la clé primaire dans parent_tbl1, tandis que xid est la clé étrangère dans child_tbl2
parent_tbl1
xid pub
1 1
2 1
3 0
4 1
child_tbl2
id ttype fno xid qnty
1 A 0 1 0
2 A 1 1 3
3 B 1 1 4
4 A 1 2 1
5 A 1 3 2
6 A 1 4 3
7 A 1 4 1
8 A 1 1 1
Voici l'explication de la requête en parties, qui sera ensuite nécessaire pour constituer la requête complète.
J'ai besoin de la SOMME de qnty dans child_tbl2:
1) Dont le pub de parent est '1' Par conséquent, l'id 5 est éliminé de child_tbl2, car xid 3 est 0 dans parent_tbl1
Résultats: child_tbl2
id ttype fno xid qnty
1 A 0 1 0
2 A 1 1 3
3 B 1 1 4
4 A 1 2 1
6 A 1 4 3
7 A 1 4 1
8 A 1 1 1
2) ET dont la table parent a ttype 'A' dans la table child Par conséquent, l'id 3 est éliminé des résultats existants parce que le ttype de l'id 3 est B
Résultats: child_tbl2
id ttype fno xid qnty
1 A 0 1 0
2 A 1 1 3
4 A 1 2 1
6 A 1 4 3
7 A 1 4 1
8 A 1 1 1
3) ET dont le parent a '0' comme l'un de ses fno dans child_tbl2 Par conséquent, les id 4, 6 et 7 sont éliminés des résultats existants, car 0 n'a pas été trouvé dans l'un de leurs fno, alors que 0 a été trouvé comme l'un des fno de xid 1
Résultats: child_tbl2
id ttype fno xid qnty
1 A 0 1 0
2 A 1 1 3
8 A 1 1 1
La réponse à la requête devrait être 4
Voici ce que j'ai.
SELECT sum(child_tbl2.qnty), parent_tbl1.xid, parent_tbl1.pub, child_tbl2.ttype, child_tbl2.fno, child_tbl2.xid
FROM parent_tbl1, child_tbl2
WHERE parent_tbl1.xid = child_tbl2.xid
AND parent_tbl1.pub = '1'
AND child_tbl2.ttype = 'A'
AND child_tbl2.fno ?
Si c'est possible, je ne sais pas comment dire au système de gestion de base de données (MySQL) de vérifier si Zéro est l'un des fno. Si je dis "AND child_tbl2.fno = '0'", je dirais que le fno du résultat devrait être 0. Je ne veux pas ça, j'ai besoin que zéro soit l'un des fno pour que la requête SUM tous les qnty dans ce xid particulier