Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Join

Diskussion: Join im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Was mach ich wenn ich 2 Tabellen mittels eines Joins verbinde, aber die beiden Tabellen eine gemeinsame Spaltenbezeichnung haben ...

Antwort
Alt 05.02.06, 17:55   #1 (permalink)
 
Registriert seit: 20.07.05
CPU8080 Leistung: Facit NTK
CPU8080 eine Nachricht über ICQ schicken
Likes: 0
Standard Join

Anzeige

Was mach ich wenn ich 2 Tabellen mittels eines Joins verbinde, aber die beiden Tabellen eine gemeinsame Spaltenbezeichnung haben (Also z.b. beide habe eine Spalte'id'). So wenn ich jetzt mit der Funtkion mysql_fetch_assoc da ran gehe würden die Arraynamen sich überschneide! Wie separiere ich den jetzt die zwei id Spalten?

CPU8080 ist offline   Mit Zitat antworten
Alt 05.02.06, 18:41   #2 (permalink)
 
Registriert seit: 20.01.03
Zwirni Leistung: Z3
Likes: 0
Standard

Code:
select tabelle1.id as tab1id, tabelle2.id as tab2id from tabelle1 left outer join tabelle2 on tabelle1.linker = tabelle2.linker
Verstanden?
Zwirni ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 05.02.06, 18:59   #3 (permalink)
Themenstarter
 
Registriert seit: 20.07.05
CPU8080 Leistung: Facit NTK
CPU8080 eine Nachricht über ICQ schicken
Likes: 0
Standard

türlich^^
Werden jetzt aber alle spalten selektiert oder nur die zweite bzw. müsste ich jetzt alle Spalten auf zählen.

Danke

Edit:

hab das hinzu gepackt und klappt: , tabelle1.*,tabelle2.*
CPU8080 ist offline   Mit Zitat antworten
Alt 05.02.06, 19:20   #4 (permalink)
 
Registriert seit: 20.01.03
Zwirni Leistung: Z3
Likes: 0
Standard

Ich hab mir angewöhnt alle später zu nutzenden Variablen aus einem Statement im "select" direkt zu nennen. Die Nutzung von * im "select" ist etwas ungünstig, weil sich die Tabellen ja jederzeit ändern könnten. Wenn du dann z.B. mit $ref[2] auf die dritte Spalte des Ergebnisses zugreifen willst würde deren Inhalt ja ein anderer sein wenn du später (in einigen Monaten) mal vor der Spalte noch eine neue Spalte einfügst - Fazit wäre: Seite futsch. Daher am Besten immer mit den direkten Spaltennamen arbeiten.

Und wenn du trotzdem Sternchen benutzen willst mach es so rum:
Code:
select *, tabelle1.id as tab1id, tabelle2.id as tab2id from tabelle1 left outer join tabelle2 on tabelle1.linker = tabelle2.linker
Dadurch würdest du erst alle Spalten auswählen und danach die speziellen Spalten tab1id und tab2id erzeugen. Hätte natürlich zur Folge, dass du deren Positionen im Array erst ermitteln musst, da in * ja ziemlich viele sein könnten Gibt wie gesagt nur Probleme mit den Sternchen
Zwirni ist offline   Mit Zitat antworten
Alt 06.02.06, 15:10   #5 (permalink)
Themenstarter
 
Registriert seit: 20.07.05
CPU8080 Leistung: Facit NTK
CPU8080 eine Nachricht über ICQ schicken
Likes: 0
Standard

ok, danke jetzt muss ich aber doch nochmal was fragen.
Also ich habe jetzt 3 Tabellen, wobei die die zweite mit der ersten verknüpft ist und die dritte mit der zweiten verküpft ist und zwar jeweils über eine id.
So und jetzt will ich das mit einem sqlbefehl ausgeben.
Srry kann sowas immer schwer beschreiben, am liebsten wär mir wenn ihr vll eher ein deutschsprachiges SQL-Tutorial hättet wo das simple beschrieben ist.
Da ichs mit Joins eh nicht so drauf habe wärs besser wenn ich es lern als euh dauernd Löcher ind den Bauch frage.

Danke


Tabelle:
Code:
Tabelle 1                   Tabelle2                                 Tabelle 3
_________________________________
|                               |
id name Datum       id Betreff Tabellen1id          id Beschreibung  Tabellen2id
                     |____________________________________________________|
CPU8080 ist offline   Mit Zitat antworten
Alt 06.02.06, 20:49   #6 (permalink)
 
Registriert seit: 20.01.03
Zwirni Leistung: Z3
Likes: 0
Standard

Bei diesem Aufbau gibt es 2 Möglichkeiten, auch ohne join:

a)
Code:
select * from tabelle1, tabelle2, tabelle3 where tabelle1.id = tabelle2.id and tabelle2.id = tabelle3.id
b)
Code:
select * from tabelle1, tabelle2 left outer join tabelle3 on tabelle2.id = tabelle3.id where tabelle1.id = tabelle2.id
Der Unterschied wäre, dass bei a) nur Ergebnisse kommen wenn in allen 3 Tabellen der jeweils verknüpfte Wert enthalten ist (und somit "where" erfüllt ist) und bei b) auch dann ein Ergebnis kommt wenn in Tabelle 3 der Wert nicht enthalten ist.

Join ist kompliziert zu verstehen. Da solltest du aus irgendeinem Tutorial mal einige Beispiele selber ausführen. Hab leider momentan keines zur Hand. Vielleicht reicht dir aber auch das offizielle Handbuch: http://dev.mysql.com/doc/refman/4.0/de/
Zwirni ist offline   Mit Zitat antworten
Alt 06.02.06, 21:19   #7 (permalink)
Themenstarter
 
Registriert seit: 20.07.05
CPU8080 Leistung: Facit NTK
CPU8080 eine Nachricht über ICQ schicken
Likes: 0
Standard

sodala funktionieren tuts jetzt muss ich nur noch verstehen also wenn jemand ein gute sql tut hat immer her damit

EDIT: Sag mal wie mach ich das wenn ich alle Einträge der Tabelle1 anzeigen lassen möchte und wenn es dazu dann einen eintrag in tabelle2 und evtl dann auch in tabelle3 gibt anzeigen zu lassen. Momentan wird tabelle1 nur angezeigt wenn auch dazu ein eintrag in tabelle2 vorhanden ist

EDIT: habs jetzt selber rausbekommen
CPU8080 ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Join
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[SQL] Update mit JOIN Thunderb0lt Code Kitchen 12 09.02.10 13:02
2 Tabellen mit JOIN zu einer Tabelle verknüpfen moveax1 (Web-) Design und webbasierte Sprachen 5 06.08.08 22:53
SQL Inner Join Problem weau (Web-) Design und webbasierte Sprachen 7 15.03.08 01:04
Mysql Inner join problem weau (Web-) Design und webbasierte Sprachen 4 17.03.07 12:05


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61