![]() |
Datenbank: egal • Version: egal • Zugriff über: egal
Subselect in Where mit mehreren Ergebnisfeldern im IN-Operator
Hallo,
nur aus Neugier. Gibt es so ein Konstrukt:
Code:
Irgendwie dachte ich ich hätte das schon mal gesehen gehabt. Hab es aber bei Oracle nicht ans laufen gekriegt und das durch einen Right Join gelöst, aber die Neugier ist geblieben:
Select
A.* From TabelleA A Where A.Nummer, A.Tag IN (Select Nr, Tag From TabelleB)
Code:
Select
A.* From TabelleA A Right Join (Select Nr, Tag From TabelleB) B On A.Nummer=B.NR And A.Tag = B.Tag |
AW: Subselect in Where mit mehreren Ergebnisfeldern im IN-Operator
Nottfals über
SQL-Code:
... A.Nummer || A.Tag IN (Select Nr || Tag From TabelleB)
|
AW: Subselect in Where mit mehreren Ergebnisfeldern im IN-Operator
Ist das nicht ein stinknormaler INNER JOIN?
SQL-Code:
oder meinetwegen auch
SELECT
A.* FROM TabelleA A JOIN TabelleB B ON B.Nr = A.Nummer AND B.Tag = A.Tag
SQL-Code:
SELECT
A.* FROM TabelleA A WHERE EXISTS ( SELECT * FROM TabelleB B WHERE B.Nr = A.Nummer AND B.Tag = A.Tag ) |
AW: Subselect in Where mit mehreren Ergebnisfeldern im IN-Operator
Zitat:
|
AW: Subselect in Where mit mehreren Ergebnisfeldern im IN-Operator
Zitat:
Mein Right Join funktioniert ja nur weil in A zu jeder NR und Tag Datensätze vorhanden sind. Ist das mal nicht der Fall, müsste ich ja leere Datensätze bekommen. Irgendwie hab ich da zu kompliziert gedacht. |
AW: Subselect in Where mit mehreren Ergebnisfeldern im IN-Operator
Ja, gibt es, es fehlt nur die Klammerung auf der linken Seite.
Hab das auch mal irgendwo benutzt, aber weiß nicht mehr warum.
Code:
Es wäre zu vermuten, dass ggf. vorhandene Indices hier besser greifen als in der Version mit Konkatenierung. Macht auch mehr Spaß bei nicht String Typen wie Date ...
Select
A.* From TabelleA A Where (A.Nummer, A.Tag) IN (Select Nr, Tag From TabelleB) |
AW: Subselect in Where mit mehreren Ergebnisfeldern im IN-Operator
Jepp, das war's. Wobei ich die Version mit dem Inner Join jetzt erstmal drin lasse.
Später mach ich dann mal einen Performance-Test, wenn ich richtige Daten habe. Edit: Ganz vergessen: Danke euch allen! :) |
AW: Subselect in Where mit mehreren Ergebnisfeldern im IN-Operator
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz