![]() |
Datenbank: MySQL • Zugriff über: Devarts
Ausgabe der Daten 2er Tabellen statt einer
Hi,
Momentan löse ich es so:
Delphi-Quellcode:
Wie kann ich es realisieren wenn ich aber die Werte von 2 Tabellen haben möchte statt nur einer?
QueryRead.SQL.Text:='SELECT * FROM `'contacts+'` WHERE Customer_number = '''+customer_number+'''';
QueryRead.Open; position:= FormMain.QueryRead.FieldByName('position').AsWideString; QueryRead.Close; also z.B.
Delphi-Quellcode:
Oder muss ich das seperat ausführen?
QueryRead.SQL.Text:='SELECT * FROM `'contacts+'` [b] And `'contacts2'[/b]` WHERE Customer_number = '''+customer_number+'''';
QueryRead.Open; position:= FormMain.QueryRead.FieldByName('position').AsWideString; (Tabelle1) position:= FormMain.QueryRead.FieldByName('position').AsWideString; (Tabelle2) QueryRead.Close; |
Re: Ausgabe der Daten 2er Tabellen statt einer
Mit UNION können zwei SELECT-Ergebnisse in eines zusammengefasst und "am Stück" zurückgegeben werden.
Übrigens ist dein Verfahren, einen SQL-Text per String-Verknüpfung zu erstellen, ziemlich miserabel. Du hast schon Probleme mit den Hochkommata; wie soll das erst bei Zahlen und Datumsformaten werden - ganz abgesehen von ![]() Gruß Jürgen |
Re: Ausgabe der Daten 2er Tabellen statt einer
Oder einem Join
|
Re: Ausgabe der Daten 2er Tabellen statt einer
So in etwa:
SQL-Code:
also einfach mit Kommas trennen.
select * from table1, table2 where id = 10
Btw.: du brauchst die Backticks nicht unbedingt ;) P.S.: Parameter sind wirklich besser als Stringverkettung. Solltest du dir mal anschauen ;) |
Re: Ausgabe der Daten 2er Tabellen statt einer
Zitat:
|
Re: Ausgabe der Daten 2er Tabellen statt einer
SQL-Code:
... WHERE Customer_number = :customer_number ...
|
Re: Ausgabe der Daten 2er Tabellen statt einer
Zitat:
|
Re: Ausgabe der Daten 2er Tabellen statt einer
Durch Aliasing zudem brauchst du ja nur die Spalten abfragen, welche du benötigst.
SQL-Code:
Select
t1.position as pos1, t2.position as pos2 ... |
Re: Ausgabe der Daten 2er Tabellen statt einer
Naja das sind knapp 20-30 Werte, wird das dann nicht etwas lang und unübersichtlich?
|
Re: Ausgabe der Daten 2er Tabellen statt einer
Brauchst du den alle?
Sonst würden die Spalten verschiedene Postfixes bekommen |
Re: Ausgabe der Daten 2er Tabellen statt einer
Ja Brauche alle, dann werd ich wohl wie du schon sagtest verschiedene Postfixes verwenden müssen.
|
Re: Ausgabe der Daten 2er Tabellen statt einer
das wird automatisch gemacht
position_1 usw |
Re: Ausgabe der Daten 2er Tabellen statt einer
Habe es jetzt direkt in der DB geändert und besser zugewiesen, nun stellt sich die Frage nicht mehr, ist denke ich übersichtlicher.
|
Re: Ausgabe der Daten 2er Tabellen statt einer
Delphi-Quellcode:
Sagt mir der Delphi, das die Wehre Klausel nicht eindeutig ist oder deute ich den Fehler falsch?
FormMain.QueryRead.SQL.Text:='SELECT * FROM `'+Tabelle.customer+'`, `'+Tabelle.contacts+'` WHERE customer_number = :Customer_Number';
#23000Column 'customer_number' in where clause is ambiguous'. |
Re: Ausgabe der Daten 2er Tabellen statt einer
Wenn beide Tabellen dieses Feld besitzen musst du hier den Alias der tabelle angeben
|
Re: Ausgabe der Daten 2er Tabellen statt einer
Oh ok, aber wie sieht das aus?
|
Re: Ausgabe der Daten 2er Tabellen statt einer
Delphi-Quellcode:
FormMain.QueryRead.SQL.Text:='SELECT * FROM `'+Tabelle.customer+'` t1 , `'+Tabelle.contacts+'` t2 WHERE t1.customer_number = :Customer_Number and t2.customer_nummer = :Customer_number;';
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 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-2025 by Thomas Breitkreuz