INNER JOIN
am 05.07.2006 11:47:37 von letters
Hallo,
folgendes Problem:
Ich habe zwei tabellen. Eine Tabelle1 und eine Tabelle2. In Tabelle1 habe
ich vier Felder mit den Bezeichnungen ID_tab1, ID_tab2, ID_tab3, ID_tab4.
In Tabelle2 gibt es ca. 10 Einträge mit je einer eindeutigen ID. Die Felder
sind id_tab und zusatz.
Nun könnte z.B. in Tabelle1 folgendes stehen:
ID_tab1 = 1
ID_tab2 = 5
ID_tab3 = 8
ID_tab4 = 2
Das sind jeweils die ID´s aus Tabelle2. Soweit so gut.
Wie mache ich jetzt aber einen INNER JOIN um alle ID_tab´s abzufragen?
Select tb2.zusatz FROM Tabelle1 AS tb1 INNER JOIN Tabelle2 AS tb2 ON
tb1.ID_tab1 = tb2.id_tab
Das gibt mir den Feldinhalt von zusatz in Tabelle2 mit der ID_tab, die in
ID_tab1 in Tabelle1 steht. Nun möchte ich aber auch die Feldinhalte von
zusatz aus Tabelle2 haben deren ID_tab´s mit ID_tab2, ID_tab3 und ID_tab4
in Tabelle1 übereinstimmen.
Aber wie?
Da der Feldname und Tabelle immer gleich sind, kann ich doch nicht
schreiben:
Select tb2.zusatz,tb2.zusatz,tb2.zusatz,tb2.zusatz FROM Tabelle1 AS tb1
INNER JOIN Tabelle2 AS tb2 ON tb1.ID_tab1 = tb2.id_tab, tb1.ID_tab2 =
tb2.id_tab,tb1.ID_tab3 = tb2.id_tab,tb1.ID_tab4 = tb2.id_tab
Bekommt man das überhaupt in einem INNER JOIN unter oder muß ich da mehrere
Abfragen durchführen?
mfg
Mathias
Re: INNER JOIN
am 05.07.2006 11:54:04 von Andreas Kretschmer
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Re: INNER JOIN
am 05.07.2006 12:06:07 von letters
Am Wed, 5 Jul 2006 11:54:04 +0200 schrieb Andreas Kretschmer:
> begin Mathias Fiedler schrieb:
>> Hallo,
>> folgendes Problem:
>> Ich habe zwei tabellen. Eine Tabelle1 und eine Tabelle2. In Tabelle1 habe
>> ich vier Felder mit den Bezeichnungen ID_tab1, ID_tab2, ID_tab3, ID_tab4.
>> In Tabelle2 gibt es ca. 10 Einträge mit je einer eindeutigen ID. Die Felder
>> sind id_tab und zusatz.
>> Nun könnte z.B. in Tabelle1 folgendes stehen:
>> ID_tab1 = 1
>> ID_tab2 = 5
>> ID_tab3 = 8
>> ID_tab4 = 2
>>
>> Das sind jeweils die ID?s aus Tabelle2. Soweit so gut.
>> Wie mache ich jetzt aber einen INNER JOIN um alle ID_tab?s abzufragen?
>>
>> Select tb2.zusatz FROM Tabelle1 AS tb1 INNER JOIN Tabelle2 AS tb2 ON
>> tb1.ID_tab1 = tb2.id_tab
>>
>> Das gibt mir den Feldinhalt von zusatz in Tabelle2 mit der ID_tab, die in
>> ID_tab1 in Tabelle1 steht. Nun möchte ich aber auch die Feldinhalte von
>> zusatz aus Tabelle2 haben deren ID_tab?s mit ID_tab2, ID_tab3 und ID_tab4
>> in Tabelle1 übereinstimmen.
>
> Du joinst mehrfach und vergibts den gejointen Tabellen Aliasnamen.
> Also, ... join tabelle2 as tb3 on tb1.ID_tab2= tb3.id_tab...
> Natürlich könnte man die Alias-Namen auch etwas weniger verwirrend
> benennen...
>
>
>
> end
> Andreas
Ich hab gerade mehrere Postings von Dir gelesen. Macht es Dir eigentlich
Spass, andere zu ärgern?
Was soll der Quatsch von weniger verwirrend? Das ist ein Beispiel. Meine
Abfrage ist noch viel länger. Ich habe nur versucht, den relevanten Teil
hier so klar wie möglich darzustellen. Es geht nur um das eine Problem:
Kann ich die Werte aus einer Tabelle, die von einer anderen mehrfach
referenziert wird, über den Inner Join auslesen oder nicht und wenn ja wie?
Wenn Du dazu nichts zu sagen hast, lass es lieber.
mfg
Mathias
Re: INNER JOIN
am 05.07.2006 12:10:05 von Andreas Kretschmer
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Re: INNER JOIN
am 05.07.2006 12:33:45 von letters
Am Wed, 5 Jul 2006 12:10:05 +0200 schrieb Andreas Kretschmer:
> begin Mathias Fiedler schrieb:
>> Ich hab gerade mehrere Postings von Dir gelesen. Macht es Dir eigentlich
>> Spass, andere zu ärgern?
>
> Ist Dir grad heiß?
>
>
>> Abfrage ist noch viel länger. Ich habe nur versucht, den relevanten Teil
>
> Du, Schwanzlängenvergleiche kannst Du mit Deinen Kumpels machen,
> woanders aber bitte.
>
>
>> Kann ich die Werte aus einer Tabelle, die von einer anderen mehrfach
>> referenziert wird, über den Inner Join auslesen oder nicht und wenn ja wie?
>
> Ja.
>
>
>> Wenn Du dazu nichts zu sagen hast, lass es lieber.
>
> Deine Aufgabe war nicht, nach anderen Postings von mir zu suchen,
> sondern meine Antwort zu lesen. Du hast die Aufgabe nicht erfüllt.
>
>
> end
> Andreas
Was ist eigentlich los mit Dir? Warst wohk zu lang in der Sonne? Behalte
Dein Wissen für Dich und fühl Dich gut dabei.
Am Besten, Du hängst Dir noch ein Schild um den Hals mit der Aufschrift:
Ich bin der Grösste
Dann weis es bald jeder.
mit unfreundlichem Gruß
und ab ins Killfile
Mathias
Re: INNER JOIN
am 05.07.2006 12:34:28 von Frank Schenk
Mathias Fiedler wrote:
> Ich hab gerade mehrere Postings von Dir gelesen. Macht es Dir eigentlich
> Spass, andere zu ärgern?
> Was soll der Quatsch von weniger verwirrend? Das ist ein Beispiel. Meine
> Abfrage ist noch viel länger. Ich habe nur versucht, den relevanten Teil
> hier so klar wie möglich darzustellen. Es geht nur um das eine Problem:
> Kann ich die Werte aus einer Tabelle, die von einer anderen mehrfach
> referenziert wird, über den Inner Join auslesen oder nicht und wenn ja wie?
> Wenn Du dazu nichts zu sagen hast, lass es lieber.
Er hat nicht versucht, dich zu Postgres zu konvertieren und einen
Lösungsweg hat er dir auch genannt. Wo ist dein Problem?
Tabelle1-Tabelle100 und tab_id1-tab_id100 sind nun mal beschissene
Tabellen-/Spalten-namen. Da kann sich niemand was drunter vorstellen und
du hast nicht mal geschrieben, daß das nur eine abstrakte Beschreibung
der Situation ist.
gruß, Frank
Re: INNER JOIN
am 05.07.2006 12:50:24 von letters
Am Wed, 05 Jul 2006 12:34:28 +0200 schrieb Frank Schenk:
> Mathias Fiedler wrote:
>> Ich hab gerade mehrere Postings von Dir gelesen. Macht es Dir eigentlich
>> Spass, andere zu ärgern?
>> Was soll der Quatsch von weniger verwirrend? Das ist ein Beispiel. Meine
>> Abfrage ist noch viel länger. Ich habe nur versucht, den relevanten Teil
>> hier so klar wie möglich darzustellen. Es geht nur um das eine Problem:
>> Kann ich die Werte aus einer Tabelle, die von einer anderen mehrfach
>> referenziert wird, über den Inner Join auslesen oder nicht und wenn ja wie?
>> Wenn Du dazu nichts zu sagen hast, lass es lieber.
>
> Er hat nicht versucht, dich zu Postgres zu konvertieren und einen
> Lösungsweg hat er dir auch genannt. Wo ist dein Problem?
>
> Tabelle1-Tabelle100 und tab_id1-tab_id100 sind nun mal beschissene
> Tabellen-/Spalten-namen. Da kann sich niemand was drunter vorstellen und
> du hast nicht mal geschrieben, daß das nur eine abstrakte Beschreibung
> der Situation ist.
>
> gruß, Frank
Welche Hilfe meinst Du? Er hat auf meine Frage mit ja geantwortet. Ohne
Hinweis, ohne Link ohne sonstirgendwas. Was für eine Hilfe soll das sein?
Meine Frage war doch ganz einfach:
Kann ich die Werte aus einer Tabelle, die von einer anderen mehrfach
referenziert wird, über den Inner Join auslesen oder nicht und wenn ja wie?
Mit ja ist mir dabei nicht geholfen. Warum ist es in manchen Newsgroups
möglich, Antworten wie
versuch mal dieses.....
oder
schau mal dort ......................
zu erhalten und hier nicht? Eine Antwort, wie oben genannt, verbraucht max.
10 Zeilen und der Thread ist beendet. Man kann über die Suchfunktion diesen
finden und andere mit gleichem Problem können das nachlesen.
Hier gibts jetzt zu meiner Frage bereits 6 Postings. Der Thread ist schon 3
mal so lang wie nötig. Eine Antwort auf meine Frage war aber noch bei
keinem dabei. Tut mir leid, aber dafür sind NG´s bestimmt nicht da.
Selsbtbeweiräucherung und Selbstbewußtsein sind zwei unterschiedliche
Dinge. Ich habe kein Problem damit, vor Menschen mit größerem Wissen meinen
Hut zu ziehen. Ich habe auch kein Problem damit, mit meinem Wissen anderen
zu helfen. Und zwar präzise und aussagekräftig. Ich habe aber ein Problem
damit, mich belehren und beleidigen lassen zu müssen. Wenn es
gerechtfertigt ist, kann ich immer noch lernen. Kein Problem. Aber die
Tabellennamen haben nun wirklich nichts mit der Frage zu tun. Wenn mir
blaue Schuhe nicht passen, werden die auch nicht größer wenn mir einer
sagt, die Farbe stimmt nicht.
mfg
Mathias
Re: INNER JOIN
am 05.07.2006 13:10:38 von Helmut Chang
Mathias Fiedler schrieb:
> Am Wed, 5 Jul 2006 11:54:04 +0200 schrieb Andreas Kretschmer:
....
>> Du joinst mehrfach und vergibts den gejointen Tabellen Aliasnamen.
>> Also, ... join tabelle2 as tb3 on tb1.ID_tab2= tb3.id_tab...
>> Natürlich könnte man die Alias-Namen auch etwas weniger verwirrend
>> benennen...
....
> Ich hab gerade mehrere Postings von Dir gelesen. Macht es Dir eigentlich
> Spass, andere zu ärgern?
....
> Kann ich die Werte aus einer Tabelle, die von einer anderen mehrfach
> referenziert wird, über den Inner Join auslesen oder nicht und wenn ja wie?
Ja, kannst du. Und Herr Kretschmer hat dir auch gesagt, wie:
> Wenn Du dazu nichts zu sagen hast, lass es lieber.
Hat er. Wenn du nicht richtig lesen kannst, lass es lieber.
Re: INNER JOIN
am 05.07.2006 13:11:45 von Helmut Chang
Mathias Fiedler schrieb:
> Welche Hilfe meinst Du? Er hat auf meine Frage mit ja geantwortet.
Nein, hat er nicht. Er hat dir exakt die Lösung genannt.
gruss, heli
Re: INNER JOIN
am 05.07.2006 13:16:23 von Andreas Kretschmer
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Re: INNER JOIN
am 05.07.2006 13:33:58 von letters
Am Wed, 5 Jul 2006 11:54:04 +0200 schrieb Andreas Kretschmer:
> begin Mathias Fiedler schrieb:
>> Hallo,
>> folgendes Problem:
>> Ich habe zwei tabellen. Eine Tabelle1 und eine Tabelle2. In Tabelle1 habe
>> ich vier Felder mit den Bezeichnungen ID_tab1, ID_tab2, ID_tab3, ID_tab4.
>> In Tabelle2 gibt es ca. 10 Einträge mit je einer eindeutigen ID. Die Felder
>> sind id_tab und zusatz.
>> Nun könnte z.B. in Tabelle1 folgendes stehen:
>> ID_tab1 = 1
>> ID_tab2 = 5
>> ID_tab3 = 8
>> ID_tab4 = 2
>>
>> Das sind jeweils die ID?s aus Tabelle2. Soweit so gut.
>> Wie mache ich jetzt aber einen INNER JOIN um alle ID_tab?s abzufragen?
>>
>> Select tb2.zusatz FROM Tabelle1 AS tb1 INNER JOIN Tabelle2 AS tb2 ON
>> tb1.ID_tab1 = tb2.id_tab
>>
>> Das gibt mir den Feldinhalt von zusatz in Tabelle2 mit der ID_tab, die in
>> ID_tab1 in Tabelle1 steht. Nun möchte ich aber auch die Feldinhalte von
>> zusatz aus Tabelle2 haben deren ID_tab?s mit ID_tab2, ID_tab3 und ID_tab4
>> in Tabelle1 übereinstimmen.
>
> Du joinst mehrfach und vergibts den gejointen Tabellen Aliasnamen.
> Also, ... join tabelle2 as tb3 on tb1.ID_tab2= tb3.id_tab...
> Natürlich könnte man die Alias-Namen auch etwas weniger verwirrend
> benennen...
>
>
>
> end
> Andreas
E N T S C H U L D I G U N G
Ihr dürft mich alle schlagen. Ich war bzw. bin wohl etwas zu sehr im Streß.
Das Ganze muß nächste woche funktionieren.
Ich gehe jetzt duschen :)
und entschuldige mich nochmals.
mfg
Mathias
Re: INNER JOIN
am 05.07.2006 13:42:48 von Christian Kirsch
Mathias Fiedler schrieb:
> Am Wed, 05 Jul 2006 12:34:28 +0200 schrieb Frank Schenk:
> Welche Hilfe meinst Du? Er hat auf meine Frage mit ja geantwortet. Ohne
> Hinweis, ohne Link ohne sonstirgendwas. Was für eine Hilfe soll das sein?
> Meine Frage war doch ganz einfach:
> Kann ich die Werte aus einer Tabelle, die von einer anderen mehrfach
> referenziert wird, über den Inner Join auslesen oder nicht und wenn ja wie?
> Mit ja ist mir dabei nicht geholfen. Warum ist es in manchen Newsgroups
> möglich, Antworten wie
> versuch mal dieses.....
> oder
> schau mal dort ......................
> zu erhalten und hier nicht? Eine Antwort, wie oben genannt, verbraucht max.
> 10 Zeilen und der Thread ist beendet. Man kann über die Suchfunktion diesen
> finden und andere mit gleichem Problem können das nachlesen.
Getreu dem Motto "Leseunfähige zu Gast bei Vorlesern" zitiere ich mal
für Dich aus Andreas' erstem Posting:
> > Du joinst mehrfach und vergibts den gejointen Tabellen Aliasnamen.
> > Also, ... join tabelle2 as tb3 on tb1.ID_tab2= tb3.id_tab...
Vermutlich bringt das auch nix, da Du ja ganz offensichtlich lieber
schreibst als liest.
> Hier gibts jetzt zu meiner Frage bereits 6 Postings. Der Thread ist schon 3
> mal so lang wie nötig. Eine Antwort auf meine Frage war aber noch bei
> keinem dabei. Tut mir leid, aber dafür sind NG´s bestimmt nicht da.
Du meinst, sie sind dafür da, dem Gejammere von Leuten zuzuhören, die zu
blöd oder zu faul zum Lesen sind?
> Ich habe aber ein Problem
> damit, mich belehren und beleidigen lassen zu müssen.
Wenn Du Dich nicht belehren, also nix lernen willst, warum fragst Du dann?
> Wenn es
> gerechtfertigt ist, kann ich immer noch lernen. Kein Problem. Aber die
> Tabellennamen haben nun wirklich nichts mit der Frage zu tun.
Kurzer Ausflug in die Kommunikationstheorie: Wenn Dir derjenige, von dem
Du eine Antwort auf Deine Frage haben möchtest, den freundlichen Hinweis
gibt, Deine Frage verständlicher zu formulieren, dann ist es in Deinem
eigenen Interesse, diesen Hinweis Ernst zu nehmen.
Du kannst natürlich auch mit dem Fuà aufstampfen und "Ich will aber"
brüllen. Das hat allerdings heutzutage etwa soviel Erfolg wie in Deiner
Kindheit.
Etwas deutlicher: Deine Tabellennamen erschweren den Mitlesenden (also
denen, von denen DU eine Antwort haben willst!) das Verständnis.
Folglich sinkt ihre Bereitschaft, Dir zu antworten. Ist das in Deinem
Interesse?
Re: INNER JOIN
am 05.07.2006 13:51:21 von Thomas Rachel
Mathias Fiedler wrote:
> Ich hab gerade mehrere Postings von Dir gelesen. Macht es Dir eigentlich
> Spass, andere zu ärgern?
Manchmal kommts zwar so rüber, als wollte er das - aber gerade in diesem
Beispiel hier hat er Dir doch einen Tip gegeben. Warum regst Du Dich
darüber auf?
> Kann ich die Werte aus einer Tabelle, die von einer anderen mehrfach
> referenziert wird, über den Inner Join auslesen oder nicht und wenn ja
> wie? Wenn Du dazu nichts zu sagen hast, lass es lieber.
Was an
>> Du joinst mehrfach und vergibts den gejointen Tabellen Aliasnamen.
>> Also, ... join tabelle2 as tb3 on tb1.ID_tab2= tb3.id_tab...
hast Du nicht verstanden?
Thomas
Re: INNER JOIN
am 05.07.2006 14:48:04 von letters
Am Wed, 05 Jul 2006 13:42:48 +0200 schrieb Christian Kirsch:
> Mathias Fiedler schrieb:
>> Am Wed, 05 Jul 2006 12:34:28 +0200 schrieb Frank Schenk:
>
>> Welche Hilfe meinst Du? Er hat auf meine Frage mit ja geantwortet. Ohne
>> Hinweis, ohne Link ohne sonstirgendwas. Was für eine Hilfe soll das sein?
>> Meine Frage war doch ganz einfach:
>> Kann ich die Werte aus einer Tabelle, die von einer anderen mehrfach
>> referenziert wird, über den Inner Join auslesen oder nicht und wenn ja wie?
>> Mit ja ist mir dabei nicht geholfen. Warum ist es in manchen Newsgroups
>> möglich, Antworten wie
>> versuch mal dieses.....
>> oder
>> schau mal dort ......................
>> zu erhalten und hier nicht? Eine Antwort, wie oben genannt, verbraucht max.
>> 10 Zeilen und der Thread ist beendet. Man kann über die Suchfunktion diesen
>> finden und andere mit gleichem Problem können das nachlesen.
>
> Getreu dem Motto "Leseunfähige zu Gast bei Vorlesern" zitiere ich mal
> für Dich aus Andreas' erstem Posting:
>
>>> Du joinst mehrfach und vergibts den gejointen Tabellen Aliasnamen.
>>> Also, ... join tabelle2 as tb3 on tb1.ID_tab2= tb3.id_tab...
>
> Vermutlich bringt das auch nix, da Du ja ganz offensichtlich lieber
> schreibst als liest.
>
>
>> Hier gibts jetzt zu meiner Frage bereits 6 Postings. Der Thread ist schon 3
>> mal so lang wie nötig. Eine Antwort auf meine Frage war aber noch bei
>> keinem dabei. Tut mir leid, aber dafür sind NG´s bestimmt nicht da.
>
> Du meinst, sie sind dafür da, dem Gejammere von Leuten zuzuhören, die zu
> blöd oder zu faul zum Lesen sind?
>
>> Ich habe aber ein Problem
>> damit, mich belehren und beleidigen lassen zu müssen.
>
> Wenn Du Dich nicht belehren, also nix lernen willst, warum fragst Du dann?
>
>> Wenn es
>> gerechtfertigt ist, kann ich immer noch lernen. Kein Problem. Aber die
>> Tabellennamen haben nun wirklich nichts mit der Frage zu tun.
>
> Kurzer Ausflug in die Kommunikationstheorie: Wenn Dir derjenige, von dem
> Du eine Antwort auf Deine Frage haben möchtest, den freundlichen Hinweis
> gibt, Deine Frage verständlicher zu formulieren, dann ist es in Deinem
> eigenen Interesse, diesen Hinweis Ernst zu nehmen.
> Du kannst natürlich auch mit dem Fuß aufstampfen und "Ich will aber"
> brüllen. Das hat allerdings heutzutage etwa soviel Erfolg wie in Deiner
> Kindheit.
>
> Etwas deutlicher: Deine Tabellennamen erschweren den Mitlesenden (also
> denen, von denen DU eine Antwort haben willst!) das Verständnis.
> Folglich sinkt ihre Bereitschaft, Dir zu antworten. Ist das in Deinem
> Interesse?
Nun, falls Du es auch noch nicht gemerkt haben solltest, lies mein letztes
Posting. Diser beitrag war unnötig.
Mathias
Re: INNER JOIN
am 05.07.2006 14:55:27 von Andreas Kretschmer
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de
Re: INNER JOIN
am 05.07.2006 15:35:51 von letters
Am Wed, 5 Jul 2006 14:55:27 +0200 schrieb Andreas Kretschmer:
> Dein sinnfreies Komplettzitat auch. Hint: neben dem Lesen solltest Du
> auch noch das Quoten erlernen.
Na, hast Du immer noch nicht genug? Das ist doch alles OT. Kann das jetzt
vielleicht mal aufhören?
Mathias