J'ai 2 tables pour par ex. Ici si je veux vérifier toutes les tâches qui n'ont pas de clé 'A'. P> tâche code> et taskAttributes code>. Il existe une liaison entre 2 tables avec Taskid code>. Chaque Taskid code> a plusieurs attributs représentés par la touche , valeur code>.
J'aimerais savoir si une clé spécifique existe pour la tâche p>
3 Réponses :
Utiliser sous-requête corrélée code> avec n'existe pas code>
. . 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 code>. Les lettres arbitraires sont assez difficiles à suivre, car le lecteur doit se référer continuellement à la clause code> de code> 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.
avec n'existe pas code>:
Une solution simple utilise l'agrégation: 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