SQL mit join in API / Myresult [erledigt]

Alles zum SQL-Dialekt

Moderator: Moderatoren

SQL mit join in API / Myresult [erledigt]

Beitragvon Fischkopp » Di, 10. Feb 2015 17:21

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
Zuletzt geändert von Fischkopp am Mi, 11. Feb 2015 12:45, insgesamt 1-mal geändert.
Grüße aus Berlin

Reiner
Benutzeravatar
Fischkopp
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 57
Registriert: Sa, 19. Jul 2014 9:31
Wohnort: Berlin

Re: SQL mit join in API / Myresult

Beitragvon georg » Di, 10. Feb 2015 19:47

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?
Liebe Grüsse aus der Eifel,

Georg
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1769
Registriert: Fr, 08. Feb 2008 21:29

Re: SQL mit join in API / Myresult

Beitragvon AUGE_OHR » Di, 10. Feb 2015 20:01

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;
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10154
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SQL mit join in API / Myresult

Beitragvon Fischkopp » Di, 10. Feb 2015 23:15

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 :)
Grüße aus Berlin

Reiner
Benutzeravatar
Fischkopp
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 57
Registriert: Sa, 19. Jul 2014 9:31
Wohnort: Berlin

Re: SQL mit join in API / Myresult

Beitragvon AUGE_OHR » Mi, 11. Feb 2015 0:14

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.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10154
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SQL mit join in API / Myresult

Beitragvon georg » Mi, 11. Feb 2015 10:57

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?
Liebe Grüsse aus der Eifel,

Georg
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1769
Registriert: Fr, 08. Feb 2008 21:29

Re: SQL mit join in API / Myresult

Beitragvon Fischkopp » Mi, 11. Feb 2015 12:44

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 !
Grüße aus Berlin

Reiner
Benutzeravatar
Fischkopp
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 57
Registriert: Sa, 19. Jul 2014 9:31
Wohnort: Berlin


Zurück zu SQL (Sprache)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast