![]() |
SQL Abfrage innerhalb einer Abfrage in einer Tabelle...
Hallo,
ich versuche mal das Problem zu schildern... Eine Tabelle baum hat die felder pkey,parkey und reckey. Ich habe einen reckey='x', mit dem ich den zugehörigen pkey (eindeutig) bekomme, und ich brauche nun alle Datensätze (das können mehrere sein), wo parkey=pkey ist! wie kann ich das machen? |
Re: SQL Abfrage innerhalb einer Abfrage in einer Tabelle...
Hallo,
ich weiss zwar nicht welche Datenbank, aber soweit wie das nun verstanden habe, würde ich es wie folgt abbilden
SQL-Code:
SELECT *
FROM Tabelle WHERE pkey in (SELECT pkey FROM Tabelle WHERE reckey = 'x') AND parkey=pkey |
Re: SQL Abfrage innerhalb einer Abfrage in einer Tabelle...
hallo und danke, hebe es nun hinbekommen :thumb:
... habe die db nicht mitgeteilt, ich verwende eh nur standard sql befehle! aber "in" habe ich bis dato noch nie benutzt! ... habe es nun so dargestellt....
SQL-Code:
select * from baum
where parkey in (select pkey from baum where reckey="xxx") |
Re: SQL Abfrage innerhalb einer Abfrage in einer Tabelle...
Zitat:
SQL-Code:
Subselects sind, wenn sie überhaupt von DBMS unterstützt werden, immer recht langsam.
select * from baum
where parkey=pkey and reckkey='x' |
Re: SQL Abfrage innerhalb einer Abfrage in einer Tabelle...
Zitat:
zu deinem verständnis: - es gibt nur einen datensatz bei dem gilt reckey='x', daraus folgt der pkey - es gibt mehrere datensätze wo parkey=pkey ist! ... da glaube ich, dass deine abfrage nur nil ergibt, da es keinen datensatz gibt der so definiert sein kann! |
Re: SQL Abfrage innerhalb einer Abfrage in einer Tabelle...
OK, dann hatt ich dein Problem in der Tat falsch verstanden. Trotzdem hast du eine Möglichkeit, deine Abrage zu beschleunigen
1. Du verfährst über 2 Schritte. Sprich, du holst dir als erste deinen eindeutige pkey, mit einer simplen Abfrage 2. Dann über eine 2. Query, wo du ja jetzt schon pkey kennst, holst du dir deine eigentliche Datensaätze. Wenn du einen SQL Server verwendest und Stored Procedures nutzen kannst, würd ich das alles in eine SP packen. |
Re: SQL Abfrage innerhalb einer Abfrage in einer Tabelle...
... subselects sind wirklich sau langsam, ich wollte damit eigentlich zwei einzelne abfragen umgehen
...habe es nun ganz anders gelöst, durch umschreiben der funktion, da es der frage des treads nicht nahe kommt, poste ich auch nicht das ergebnis! ... aber danke an alle! gruß aus f |
Re: SQL Abfrage innerhalb einer Abfrage in einer Tabelle...
Zitat:
oder es wurden schlichtweg einfach die notwendigen Key's vergessen. Sicherlich könnte man das Problem auch anders lösen StoredProcedure und Cursor ... etwas aufwendiger, oder Aber es wurde nicht die Frage nach der Geschwindigkeit gestellt bzw. ob es hierbei um 100 oder 1000000 Datensätze geht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:37 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