Entwickler-Ecke
Datenbanken - Join mit TQuery.SQL
Jakob Schöttl - Do 13.12.07 17:46
Titel: Join mit TQuery.SQL
Hi,
die Syntax von SQL könnte ja so aussehen:
SQL-Anweisung
1:
| SELECT * FROM <table1>,<table2> ... |
Geht das auch bei der TQuery-Komponente, weil die ja eigentlich immer nur einer Datenquellenkomponente zugeordnet ist. Oder kann man da auch mehrere Tabellen hinter
FROM angeben?
Danke schon mal!
mkinzler - Do 13.12.07 18:58
Ja, obwohl das eher vom verwendeten DBMS abhängt. Aber sogar Paradox kennt JOIN. Der oben genannte implizite Join sollte mit allen DBMS gehen.
ene - Fr 14.12.07 11:23
Hi,
die beiden Tabellen, die du abfragen willst. Auch muss man kein INNER JOIN, um ein INNER JOIN zu erreichen, bzw können diese auch zu Perfomaceverlusten führen. Was willst du denn erreichen und wie ist der Datenaufbau?
Jakob Schöttl - Fr 14.12.07 13:50
sagen wir, ich will aus einer Tabelle "Artikel" und aus einer Tabelle "Lagerbestand" (Haupt-/Detailbeziehung) die Felder "Artikel.Name" und "Lagerbestand.Anzahl" auswählen, wo die "Lagerbestand.Anzahl" > 0.
und ich habe eine Query.
Wie muss dann die Abfrage sein, die ich Query.SQL zuweise?
so vllt?
SQL-Anweisung
1: 2:
| SELECT Name,Anzahl FROM artikel, lagerbestand WHERE (anzahl>0) AND (artikel.id=lagerbestand.ArtikelID) |
ene - Fr 14.12.07 14:01
So sollte das aussehen, wobei Name immer eine ganz schlechte Feldbezeichnung ist ;)
Jakob Schöttl - Sa 15.12.07 22:04
Aha!!! Jetzt sehe ich endlich, dass TQuery auch ohne einer DataSource und nur mit SQL-Quelltext funktioniert!
ok, aber wie gebe ich die Namen der Datenbanken in dem SQL-Code an?
"c:\db\db1.db" und "c:\db\db2.db"
die Abfrage sieht dann so aus:
SQL-Anweisung
1:
| SELECT * FROM "c:\db\db1.db", "c:\db\db2.db" WHERE ? |
gibt es noch eine andere möglichkeit?
weil wenn ich jetzt auf Nicht-eindeutige Felder zugreifen will (hinter
WHERE) dann müsste ich ja schreiben
SQL-Anweisung
1:
| c:\db\db1.db.nichteindeutigerfeldname |
MAlsleben - Sa 15.12.07 22:57
Hi,
müsste so gehen:
SQL-Anweisung
1:
| Select a.Name, b.Anzahl from Tabelle1 a, Tabelle2 b where a.id=b.id2 |
Gruss Micha
Jakob Schöttl - Sa 15.12.07 23:28
ah, das geht, so weit! Vielen Dank MAlsleben...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!