[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2006
    Beiträge
    68

    Verbinden 2er Tabellen

    Hallo!

    Ich habe 2 Tabellen, die als gleichen Wert "Name" haben. Die wollte ich nun folgendermaßen verbinden im interaktiven SQL:

    select *from Bibliothek.Teildatei1, Bibliothek.Teildatei2 order by Bibliothek.Teildatei.spaltenname3

    Fehler: Qualifizierter Objektname Teildatei2 nicht gültig.

    aber das geht nicht; das geht nicht mal wenn ich alles ab "Order by" weglass.... wie verbinde ich die beiden Tabellen denn dann?

    Laut meiner Quelle brauch ich dafür noch kein JOIN, oder?
    Ich nerve zwar, aber ich lerne!

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wenn du

    select * from Datei1, Datei2

    angibst, ist das ein sog. Cross-Join, da jeder Satz aus Datei1 mit jedem Satz aus Datei2 verknüpft wird.
    Du musst schon eine Beziehung herstellen:

    select * from Datei1 A, Datei2 B
    where a.key = b.key

    was im Übrigen das Selbe ist wie

    select * from Datei1 A
    inner join Date2 B on a.key=b.key

    Ansonsten:
    Wie ich auf Grund deiner Fragen sehe, erwartest du von diesem Forum eine Grundkurs in SQL.
    Dies sprengt allerdings den Rahmen hier.

    Ich würde die mal ein SQL-Handbuch empfehlen:
    http://publib.boulder.ibm.com/infoce...yprintthis.htm
    http://publib.boulder.ibm.com/infoce...cprintable.htm
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2006
    Beiträge
    68
    Danke für die Hilfe.

    Aber um das mal klar zu stellen: ich erwarte hier GAR nichts, und freu mich über jede Antwort, die ich kriege.

    Handbücher hab ich hier liegen:
    SQL in 21 Tagen,
    SQL Server 2000
    SQL Server 2000 in 21 Tagen.

    Das hilft zwar weiter aber nicht im Hinblick auf die iSeries.

    Sorry,ich wußte nicht,das ihr solche "Popelfragen" nicht beantworten wollt sondern hauptsächlich den Profis helfen wollt (aber auch die haben mal klein angefangen).

    Will natürlich nicht weiter die Leitung blockieren.
    Ich nerve zwar, aber ich lerne!

  4. #4
    Registriert seit
    Aug 2004
    Beiträge
    923
    Zitat Zitat von deni87991
    ...Handbücher hab ich hier liegen:
    SQL in 21 Tagen,
    SQL Server 2000
    SQL Server 2000 in 21 Tagen.

    Das hilft zwar weiter aber nicht im Hinblick auf die iSeries.
    ....
    Joo,
    dann solltest Du Dir bei Gelegenheit auch noch folgendes antun:

    SQL Reference

    SQL Programming

    SQL messages and codes

    kuempi

    Zusatz mal wieder:
    Ich seh gerade, dass Fuerchau die links ja schon angegeben hatte.
    Sowas... Lesen sollte man schon können sagte Werner immer...
    :-)

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Sicher werden hier auch "Popel"-Fragen beantwortet, geklärt, diskutiert u.v.m.
    Jedoch gibt es hier keine Schulungen. Es gibt schließlich Leute, die sich damit ihren Lebensunterhalt verdienen.

    Aber wie gesagt, den Link auf die Handbücher hast du nun ja. Schau dir diese mal in Ruhe an und frag dann erneut.

    So groß ist der Unterschied zwischen SQL-Server und DB2/UDB nun auch wieder nicht.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    beim starten der interaktiven SQL Sitzung (und nicht nur da) gibt es einen Parameter naming und der steht im default auf *SYS und damit hat man einen grauseligen Dialekt von SQL vor sich (selbiger kennt den Punkt nicht als qualifier zwischen Schema und Tabelle und will da einen Schlapp). Wenn du NAMING auf *SQL stellst wird dir einiges erleichtert.

    mfg

    Dieter Bender

    Zitat Zitat von deni87991
    Hallo!

    Ich habe 2 Tabellen, die als gleichen Wert "Name" haben. Die wollte ich nun folgendermaßen verbinden im interaktiven SQL:

    select *from Bibliothek.Teildatei1, Bibliothek.Teildatei2 order by Bibliothek.Teildatei.spaltenname3

    Fehler: Qualifizierter Objektname Teildatei2 nicht gültig.

    aber das geht nicht; das geht nicht mal wenn ich alles ab "Order by" weglass.... wie verbinde ich die beiden Tabellen denn dann?

    Laut meiner Quelle brauch ich dafür noch kein JOIN, oder?
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wenn man sich das Naming per F13->Auswahl 1 einmal einstellt, bleibt es AN DIESEM BILDSCHIRM solange unverändert, bis man es mit diesem Methode wieder ändert, und zwar unabhängig davon, was man beim STRSQL angibt.

    @Dieter
    Mit *SYS arbeitet man auf der AS/400 eigentlich am häufigsten um mit unqualifizierten SQL's (und nicht unqualifizierten Authoren) die *LIBL zu verwenden.
    Gerade das ist ja der "Vorteil", da ja sonst in allen Programmen IMMER qualifiziert werden müsste (obwohl: im Dialog wäre das beim UPDATE/DELETE wohl des öfteren sinnvoll).

    Wenn ich mit z.B. SQL-Server arbeite stellt sich das Problem nicht, da hier die Qualifizierung eher unnötig ist.
    Ich kann mich ja eh nur mit einer Datenbank verbinden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... wenn man mit speichern raus geht und bis auf ein paar Wackelfälle, wenn man mehrere SQL Sessions parallel betreibt. Ich würde da raten, dass man (gerade wenn man anfängt) da alles auf SQL Standard trimmt:
    create Schema (damit Journale automatisch erstellt werden und alles neue per SQL erstellte journalisiert wird)
    immer mit naming *SQL arbeiten (dann gibt es keine Änderungsproblematik)
    zur Qaulifizierung: der SQL Standard verwendet das private Schema (= USER) solange kein default Schema gesetzt wird (beim Connect oder mit set default schema).
    @Baldur: das mit der libl, das ist doch wohl für eine relationale Datenbank Dummfug von der dummfugigsten Sorte; da habe ich eine Datenbank, die referentielle Integrität überwacht (wenn man das hoffentlich so erstellt) und dann sage ich schau mal in welchem Schema du eine Tabelle findest und es ist mir auch völlig Wurscht ob der Auftrag völlig woanders (z.B.: QTEMP)geändert wird, wie die Lagerbuchung und sage mir nicht, dass das noch nicht passiert wäre!!!

    mfg

    Dieter Bender
    Zitat Zitat von Fuerchau
    Wenn man sich das Naming per F13->Auswahl 1 einmal einstellt, bleibt es AN DIESEM BILDSCHIRM solange unverändert, bis man es mit diesem Methode wieder ändert, und zwar unabhängig davon, was man beim STRSQL angibt.

    @Dieter
    Mit *SYS arbeitet man auf der AS/400 eigentlich am häufigsten um mit unqualifizierten SQL's (und nicht unqualifizierten Authoren) die *LIBL zu verwenden.
    Gerade das ist ja der "Vorteil", da ja sonst in allen Programmen IMMER qualifiziert werden müsste (obwohl: im Dialog wäre das beim UPDATE/DELETE wohl des öfteren sinnvoll).

    Wenn ich mit z.B. SQL-Server arbeite stellt sich das Problem nicht, da hier die Qualifizierung eher unnötig ist.
    Ich kann mich ja eh nur mit einer Datenbank verbinden.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Siehst du, und deshalb werden wir so schnell nicht arbeitslos
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Jan 2006
    Beiträge
    68
    Einmal muß ich noch nachhaken, weil mir das jetzt nicht ganz klar ist.

    Bist du wirklich nur gegen das Naming auf *SQL weil es Mehrarbeit gedeutet?

    Also ich hab das jetz umgestellt und siehe da, jetzt klappen meine schönen Joins (das Thema stand gestern auf dem Stundenplan :-), ich bin quasi begeistert und finde da jetz nix schlimmes dran-im Gegenteil, vorher wußte ich nicht wie ich es ohne Qualifizierung machen sollte (wie man ja gesehen hat).

    Warum also so abgeneigt?
    Ich nerve zwar, aber ich lerne!

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    das ganze ist nur aus der Historie zu verstehen, die relationale Datenbank /38, der Vorgänger der AS400 entstand zeitgleich mit DB2 für den Mainframe und war sogar einen Tick eher kaufbar. Daher hat die AS400 heute noch zwei Datenbank Oberflächen, die klassische mit DDS, Query400, Record Level Access und eben SQL, das zunächst als grauseliger Dialekt implementiert wurde und wegen schlechter Performance unbeliebt war.
    Viele von den (echten) Experten auf der AS400 benutzen SQL auf der AS400 schon als es noch weit von ANSI SQL entfernt war und bevorzugen das, was sie gewöhnt sind. Ich habe mir das (eher mühsam) abgewöhnt, als ich es mit mehreren Datenbanken und JDBC zu tun bekam. Einfacher ist da eigentlich keins von beiden, nur anders.

    mfg

    Dieter Bender

    Zitat Zitat von deni87991
    Einmal muß ich noch nachhaken, weil mir das jetzt nicht ganz klar ist.

    Bist du wirklich nur gegen das Naming auf *SQL weil es Mehrarbeit gedeutet?

    Also ich hab das jetz umgestellt und siehe da, jetzt klappen meine schönen Joins (das Thema stand gestern auf dem Stundenplan :-), ich bin quasi begeistert und finde da jetz nix schlimmes dran-im Gegenteil, vorher wußte ich nicht wie ich es ohne Qualifizierung machen sollte (wie man ja gesehen hat).

    Warum also so abgeneigt?
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Verknüpfen von Tabellen mit SQL
    By e_sichert in forum IBM i Hauptforum
    Antworten: 21
    Letzter Beitrag: 28-11-06, 19:43
  2. Journaling für alle Tabellen eines Schemas einschalten
    By remo2010 in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 24-11-06, 15:24
  3. Einzelne DB Tabellen sichern
    By CAL in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 23-06-06, 09:03
  4. PC-CD Laufwerk mit AS/400 verbinden
    By DKSPROFI in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 12-06-06, 08:01
  5. Character verbinden in Embedded SQL
    By e_sichert in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 03-05-06, 10:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •