Das Portal für Webmaster - Startseite

Tutorials
» Übersicht

Software
» Browser
» FTP
» Grafik
» Programmieren
» Sicherheit
» Tools

Service
» Webmasterlexikon
» Webhosting-Anbieter

Online-Tools
» PageRank-Check
» HTML-Validator
» CSS-Validator
» IP-Check
» quickDate

web-workshop.de
» Newsletter
» Umfragen
» Sitemap
» FAQ
» Partner
» Kontakt
» Impressum
» Datenschutz

Partner
» WebHosting
» Tutorials

Community
» Informationen
» Registrierung
» Login
 
5 Besucher und 0 Mitglieder Online

Du bist hier: Tutorials » mySQL » Tabellen verknüpfen

Tabellen verknüpfen

In diesem Tutorial wollen wir mittels einer SQL-Abfrage zwei Tabellen verknüpfen.

Als Hilfe dient uns dazu der Primärschlüssel der Einen und der Fremdschlüssel der Anderen Tabelle, sowie dem SQL-Statement INNER JOIN.

Zuerst einmal überlegen wir uns die Datenbankstruktur:

tab_artikel

artikel_id | kat_id | bezeichnung
1 | 2 | DDR-RAM
2 | 1 | Rohlinge
3 | 1 | Disketten


tab_kategorien

kat_id | bezeichnung
1 | Speicher-Medien
2 | Arbeits-Speicher


Wir möchten nun die Artikel-Daten aus der Tabelle tab_artikel und die passende Artikel-Kategorie aus tab_kategorien ausgeben.

Um die Übersicht zu behalten werden wir uns ersteinmal die SQL-Abfrage für die Artikel ansehen:


<?php
$query_string 
"SELECT 
                      artikel_id, kat_id, bezeichnung
                      FROM tab_artikel"
;
?>



Damit hätten wir Artikel-ID, Kategorie-ID und die Artikel-Bezeichnung ausgewählt und können es später ausgeben.
Jetzt verknüpfen wir die Artikel-Tabelle mit der Kategorie-Tabelle:


<?php
$query_string 
"SELECT a.artikel_id, a.bezeichnung, b.bezeichnung AS kategorie
FROM tab_artikel AS a
INNER JOIN
tab_kategorien AS b
ON a.katid = b.katid"
;
?>



Die folgenede Abfrage ist für Einsteiger vielleicht etwas kompliziert, aber dennoch recht schnell zu durchschauen.
Wir können für die SQL-Tabellen Synonyme angeben was mit diesem Teil aus der Abfrage passiert: "tab_artikel AS a".


Damit wir die entsprechenden Daten aus den Tabellen auswählen können, selektieren wir durch Voranstellung des Synonyms alle Spalten der Tabellen: "SELECT a.artikel_id, a.bezeichnung, b.bezeichnung AS kategorie".

Auch bei den Spalten dürfen Synonyme verwendet werden, was man hier auf den Teil "b.bezeichnung AS kategorie" anwendet.

Um die Tabellen jetzt durch den Primärschlüssel kat_id in der Tabelle tab_kategorien und dem gleichnamigen Fremdschlüssel in der Tabelle tab_artikel zu verknüpfen, benötigen wir INNER JOIN.

Die Syntax bei solchen INNER JOIN - Abfragen sieht wie folgt aus:
"SELECT
[spalten]
FROM [tabelle1]
INNER JOIN [tabelle2]
ON [primärschlüssel] = [fremdschlüssel]"


Um sämtliche Daten ausgeben zu können, hier nochmal die komplette Abfrage mit Ausgabe:

<?php
$query_string 
"SELECT
 a.artikel_id, a.bezeichnung, b.bezeichnung AS kategorie
 FROM tab_artikel AS a
 INNER JOIN
 tab_kategorien AS b
 ON a.katid = b.katid"
;
$query mysql_query($query_string);

while(
$data mysql_fetch_object($query)){
    print 
$data->artikel_id " - ";
        print 
$data->bezeichnung " - ";
        print 
$data->kategorie "";
}
?>



Autor & Bewertung
 
Autor: fiveONE|51
Ø Tutorial-Bewertung: 7.17 bei 71 Stimmen
» Deine Bewertung:  


Leser-Kommentare
Pete | eMail
Was bedeutet nun dies Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/w15547/web/public_html/test/2.php on line 61 Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /home/w15547/web/public_html/test/2.php on line 72 habe es auf zu_erledigen und personen tabellen und dem zu verknüpfenden Feld aufgabe umgeschrieben
geschrieben am 02. November 2011 um 14:50 Uhr


bizbxvl | eMail
ZUHv3Q llkjujsvjcyx, [url=http://wwbfylszxdas.com/]wwbfylszxdas[/url], [link=http://mwhekwqjbozn.com/]mwhekwqjbozn[/link], http://mmrtdywtbfhb.com/
geschrieben am 19. Dezember 2010 um 15:27 Uhr


djfgyar | eMail
U1AyMJ ehebaeqqelqp, [url=http://nurxozjfvwsk.com/]nurxozjfvwsk[/url], [link=http://vpdpybaagbqd.com/]vpdpybaagbqd[/link], http://szjoefrhjiex.com/
geschrieben am 29. Oktober 2010 um 02:49 Uhr


vzznhi | eMail
whdBjG qfcstsavfgkq, [url=http://vdnuvavdkday.com/]vdnuvavdkday[/url], [link=http://keczgiplwxpk.com/]keczgiplwxpk[/link], http://gyuhsjjzqqfe.com/
geschrieben am 10. Oktober 2010 um 22:05 Uhr


ldpgdujeihw | eMail
DgjZVx qaylhncvalqh, [url=http://melfrvfavhrf.com/]melfrvfavhrf[/url], [link=http://hzjdaaufzwtw.com/]hzjdaaufzwtw[/link], http://aiizjjfwdajc.com/
geschrieben am 09. Mai 2010 um 06:19 Uhr


huhuvymkccu | eMail
lJ5kj3 icupvnbccjfa, [url=http://evqcdmbdvcqk.com/]evqcdmbdvcqk[/url], [link=http://hookezlesnhx.com/]hookezlesnhx[/link], http://uvzzsflssmpp.com/
geschrieben am 22. April 2010 um 00:29 Uhr


eifkfn | eMail
L68bW9 pzlpozupgrni, [url=http://bmvhrxnubwuf.com/]bmvhrxnubwuf[/url], [link=http://knhbqrlxmoxl.com/]knhbqrlxmoxl[/link], http://ykyavampkide.com/
geschrieben am 06. April 2010 um 13:28 Uhr


cggydaeiccv | eMail
Fr9fUy medbeewxmcof, [url=http://ebkzgvazfyiq.com/]ebkzgvazfyiq[/url], [link=http://lxjwzacrldlf.com/]lxjwzacrldlf[/link], http://nyxsiavlqmck.com/
geschrieben am 21. Februar 2010 um 11:31 Uhr


vfklfalc | eMail
hYHifw xsdqzxaxzafy, [url=http://xyozqbxgkygj.com/]xyozqbxgkygj[/url], [link=http://kkwilxplhatz.com/]kkwilxplhatz[/link], http://dkvpxmwewvik.com/
geschrieben am 15. Januar 2010 um 07:28 Uhr


wxjybe | eMail
zK3wXR spahfkyacmxp, [url=http://kdqrbpqxonuf.com/]kdqrbpqxonuf[/url], [link=http://ozvvfuubteqr.com/]ozvvfuubteqr[/link], http://pehqordxctxh.com/
geschrieben am 02. Dezember 2009 um 14:54 Uhr


Peter
Was ist aber, wenn ein Artikel mehreren Kategorien angeören kann?
geschrieben am 19. November 2009 um 23:23 Uhr


Felix
Mehr davon!
geschrieben am 23. Juli 2008 um 12:48 Uhr


josh
sehr gutes kompendium!
geschrieben am 23. Juli 2008 um 12:47 Uhr


Gast
Mir würde es helfen, wenn auftretende Probleme vielleicht auch noch behandelt werden können. Ich habe es genauso gemacht, wie beschrieben, bekomme aber eine Fehlermeldung... von wegen falscher Syntax. Und als Neuling steht man dann da und fragt sich, wieso? weshalb warum? Aber generell ist es sehr gut gemacht!
geschrieben am 16. April 2008 um 11:15 Uhr


Gast
Also ich muss sagen, ich finde das Tutorial viel zu dünn. JOIN und ON sind Themen die etwas weiter ausgeholt werden müssen.
geschrieben am 28. Januar 2008 um 13:13 Uhr


Dominik Schneider | eMail
auch ich kann nur sagen, ein sehr gelungenes Tut. mich würde aber noch interessieren, wie man 3 Tabellen veknüpfen kann....
geschrieben am 24. Dezember 2007 um 13:59 Uhr


Dirk | eMail
Sehr gutes Tutorial - obwohl ich als DB-Entwickler arbeite und ausgebildet bin, habe ich selten ein so gutes und gleichermaßen knappes und verständliches Tut bislang gefunden. Kompliment!
geschrieben am 01. August 2007 um 16:23 Uhr