0
votes

Vérifiez si la ligne existe avec une valeur spécifique

J'ai 2 tables tâche et taskAttributes . Il existe une liaison entre 2 tables avec Taskid . Chaque Taskid a plusieurs attributs représentés par la touche , valeur . J'aimerais savoir si une clé spécifique existe pour la tâche

 Entrez la description de l'image ici

 Entrez la description de l'image ici

pour par ex. Ici si je veux vérifier toutes les tâches qui n'ont pas de clé 'A'.


0 commentaires

3 Réponses :


1
votes

Utiliser sous-requête corrélée avec n'existe pas xxx


4 commentaires

. . La seule raison pour laquelle je ne voudrais pas éviter que cette réponse correcte est dû à l'utilisation de lettres arbitraires pour les alias de table.


@Gordonlinoff, ce serait génial si vous expliquez pourquoi c'est un problème, il serait facile pour moi d'apprendre alors


. . Les abréviations pour les noms de table facilitent la lecture de la requête. Ils sont également stables si vous prenez une requête et modifiez la clause de . Les lettres arbitraires sont assez difficiles à suivre, car le lecteur doit se référer continuellement à la clause de pour déterminer où les colonnes proviennent.


@Gordonlinoff Votre point est très valable et d'avancer, je vais faire un effort pour garder à l'esprit votre suggestion de style de codage.



1
votes

avec n'existe pas : xxx


0 commentaires

0
votes

Une solution simple utilise l'agrégation: xxx pré>

Si vous utilisez Postgres 9.4 ou version ultérieure, vous pouvez utiliser Filtre code> dans le avec code> Clause: P>

HAVING COUNT(*) FILTER (WHERE "key" = 'A') = 0


0 commentaires