Seite 1 von 1
SQL mit join in API / Myresult [erledigt]
Verfasst: Di, 10. Feb 2015 17:21
von Fischkopp
Hallo,
ich kau auf meiner 1. SQL-Abfrage mit join :
Code: Alles auswählen
sqlbef="SELECT * FROM cat, cat_description WHERE cat_description.cat_id <100 GROUP by cat_name order by cat_name"
das ist ok und liefert ein korrektes Ergebnis
Per API habe ich immer die Anfrage wie folgt implementiert:
aber hier gibt es ja keinen einzelne Tabelle für table_name
Hab`keine Idee, wie man das nun umsetzen soll
Einer von euch vielleicht ?
Danke im voraus
Re: SQL mit join in API / Myresult
Verfasst: Di, 10. Feb 2015 19:47
von georg
Hallo, Reiner -
Code: Alles auswählen
cSelect := "SELECT * FROM cat, cat_description WHERE cat_description.cat_id <100 GROUP by cat_name order by cat_name"
oResult := MyResult():new(oCon, , "cat")
oResult:openRecord(cSelect)
In meiner Implementierung von MyResult():new() habe ich es so geändert, dass nicht sofort ein "SELECT * FROM cat" ausgeführt wird, wie Hector das vorsieht. Es macht aus meiner Sicht keinen Sinn, direkt ein paar Millionen Sätze zu lesen, wenn ich nur gezielt einzelne Sätze herauspicken will.
Daher wird bei mir erst über openRecord(cSelect) das Result Set angefordert, das ich haben will.
Hilft Dir das weiter?
Re: SQL mit join in API / Myresult
Verfasst: Di, 10. Feb 2015 20:01
von AUGE_OHR
Fischkopp hat geschrieben:Code: Alles auswählen
sqlbef="SELECT * FROM cat, cat_description WHERE cat_description.cat_id <100 GROUP by cat_name order by cat_name"
...aber hier gibt es ja keinen einzelne Tabelle für table_name
hm ... ich sehe einen "." bei cat_description.cat_id ... dann würde ich es auch mit dem "Alias" bei cat_name versuchen.
Re: SQL mit join in API / Myresult
Verfasst: Di, 10. Feb 2015 23:15
von Fischkopp
Sorry, ich habe mich etwas unklar ausgedrückt !
Das SQL-Statement ist noch etwas komplexer, liefert aber das richtige Ergebnis.
Heraus kommt ein result-set mit 3-10 Sätzen, kombiniert mit den Feldern aus cat und cat_description, wie ich es will
Aber in xBase ? MyResult funktioniert ja nicht mit 2 Tabellen
Ich brauche aber genau diesen result-set !
@Jimmy Da beide Tabellen die gleiche cat_id haben, muß ich eindeutig festlegen, welche zur Bedingung werden soll, sonst funktioniert die Abfrage nicht.
Mit Alias werde ich noch `ne ganze Weile nicht arbeiten, der Sinn hat sich mir noch nicht erschlossen
Re: SQL mit join in API / Myresult
Verfasst: Mi, 11. Feb 2015 0:14
von AUGE_OHR
Fischkopp hat geschrieben:Das SQL-Statement ist noch etwas komplexer, liefert aber das richtige Ergebnis.
Heraus kommt ein result-set mit 3-10 Sätzen, kombiniert mit den Feldern aus cat und cat_description, wie ich es will
Frage : welche Applikation über welche Schnittstelle ( ODBC ) ?
für MySQL gibt es doch die Workbench und die Console und nur die Syntax funktioniert 99.99% mit der native MySQL Schnittstelle.
Fischkopp hat geschrieben:Aber in xBase ? MyResult funktioniert ja nicht mit 2 Tabellen
Ich brauche aber genau diesen result-set !
@Jimmy Da beide Tabellen die gleiche cat_id haben, muß ich eindeutig festlegen, welche zur Bedingung werden soll, sonst funktioniert die Abfrage nicht.
Mit Alias werde ich noch `ne ganze Weile nicht arbeiten, der Sinn hat sich mir noch nicht erschlossen
auch hier würde die Workbench mit dem SQL Editor weiter helfen was die " AS " (Alias) Syntax angeht die man beim Zugriff auf mehreren Tabellen benötigt.
wenn die Syntax und das Ergebnis dann stimmen wird per copy/paste das SQL Statement in meinen Source übertragen und ich bekomme mit MyResult() das gewünschte Ergebnis.
Re: SQL mit join in API / Myresult
Verfasst: Mi, 11. Feb 2015 10:57
von georg
Hallo, Reiner -
was passiert denn, wenn Du das SQL-Statement so übergibst und ausführen lässt? Was kommt raus?
Wenn nichts herauskommt, welchen SQL-Fehler meldet dann das API? Hast Du das Statement mal in der MySQL-Konsole eingegeben und Dir das Ergebnis angesehen?
Re: SQL mit join in API / Myresult
Verfasst: Mi, 11. Feb 2015 12:44
von Fischkopp
So, Problem gelöst
MyResult(oCon2,cSqlbef,"cat,cat_description") funktioniert, man muß halt nur beide Tabellen wie im SQL-Query angeben !
Meistens ist es nur der Knoten im Kopf
Trotzdem Danke !