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:

Code: Alles auswählen

oTbl := MyResult():New(oCon,sqlbef,table_name)
aber hier gibt es ja keinen einzelne Tabelle für table_name #-o

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 #-o
hm ... ich sehe einen "." bei cat_description.cat_id ... dann würde ich es auch mit dem "Alias" bei cat_name versuchen.

Code: Alles auswählen

SELECT * FROM t1 INNER JOIN t2 ON t1.id = t2.id;

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 8)

Aber in xBase ? MyResult funktioniert ja nicht mit 2 Tabellen #-o
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 8)
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 #-o
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 :badgrin:
Trotzdem Danke !