est-il possible de comparer tuples em> (merci, a_horse_with_no_name) dans le dans quelque chose de similaire à celui-ci: p> où code> clause d'une requête SQL? De cette façon, je pourrais convertir ceci:
4 Réponses :
écrire est certainement possible. Au moins avec Oracle et PostgreSQL P> Si vous n'êtes pas sûr si la sous-sélection renvoie plus d'une ligne, vous pouvez même modifier le = code> sur
dans code> dans code> dans code> p> p>
Je suis totalement certain que la sous-sélection renvoie une ligne. Il retourne juste plus d'une colonne ... et j'utilise SQL Server. : S
Je n'utilise pas SQL Server, vous devrez donc essayer si cela est pris en charge.
Ce que vous recherchez est une jointure intérieure:
Je sais ce que rejoindre interne code> est. Mais je l'aime mieux quand il n'y a qu'une seule table par requête, car cette façon, je peux suivre plus facilement la logique qui m'a conduit à écrire cette requête. En outre, je n'extrait pas les données de
lathermertables code>.
On dirait que vous essayez de comparer enregistrements em> pas tables em> ici. Et en fait, vous comparez résultats em> des requêtes. Il est totalement possible avec Oracle et MySQL. La requête suivante est valide et fait le travail: p> Il comparera les champs une contre une et renvoyer 1 si elles correspondent toutes (ou 0 s'ils ne font pas). Si les sous-requêtes renvoient plus d'une ligne, elle augmentera une erreur SQL. Cette expression peut également être utilisée ailleurs comme dans les clauses. P> Comme @tsionyx a signalé, dans PostgreSQL Une sous-requête ne peut pas renvoyer plusieurs colonnes. Il est réalisable retourner une ligne de valeur Type: p> Mise à jour pour PostgreSQL H3>
Non valide pour Postgres: Sélectionnez (Sélectionnez 1, 2) = (Sélectionnez 1,2); Erreur: la sous-requête ne doit renvoyer qu'une seule colonne; code>
Sélectionnez (Sélectionnez la ligne (1, 2)) = (Sélectionnez la ligne (1,2)); code> est le valide
La réponse de Goran vous semble préférable et j'ai voté pour cela. Juste pour ajouter une autre option, puisque vous utilisez SQL Server, un moyen flexible de saisir plusieurs colonnes à partir de sous-requêtes est externe code>. Vous pouvez comparer deux valeurs (un tuple) comme:
Avez-vous essayé d'exécuter du code similaire avec vos noms de table vrais et noms de colonne? Cela a-t-il fonctionné? Quel message avez-vous eu?
BTW: Vous voulez dire "tuples" pas "tables" dans votre sujet