php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.06.2006, 08:44  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard Abfrage über 3 Tabellen

Hallo Forum,

nachdem ich jetzt mit Hilfe meines Kumpels "Googel" versucht habe mein MySQL Wissen aufzubessern, was jedoch leider nicht ganz geklappt hat, versuche ich nun mein Glück wieder mal bei euch :wink:

Also, ich habe 3 Tabellen aus denen ich mit einer Abfrage meine Daten erhalten möchte... Schonmal vorweg -> JOIN blick ich nicht so ganz...

Tabelle 1
skz | status | sportart

Tabelle 2
skz | verein | anschrift | telefon | ort | sportart

Tabelle 3
skz | trainer | telefon | mail | sportart

Es geht dabei um so eine Vereinsverwaltungssache...
in Tbl 1 habe ich die Kennzahl (skz) und den status der teilnahme
in Tbl 2 stehen die Daten des Vereins
in Tbl 3 finden wir dann noch die Kontaktdaten des Trainers

Was ich möchte ist eigentlich eine Liste mit den Daten des Vereins,
denen des Trainers und dem Status dazu, dies aber nur aus dem Bereich Fussball.

Meine Anfrage habe ich bisher so gemacht:

SELECT
a.status, b.verein, b.ort, c.trainer, c.mail
FROM
tbl1 a, tbl2 b, tbl3 c
WHERE
a.skz = b.skz AND b.skz = c.skz AND sportart = 'fussball'
ORDER BY skz ASC

Wenn ich das jetzt aufrufe bekomme ich die Meldung:
"Server shutdown in progress" ???

Habe diese Anfrage bisher nur über 2 Tabellen gehabt,
da hat´s super funktioniert...

Danke schonmal für jeden Tipp!
.................................................. .................................................. ...
54-74-90-06 :wink:
madSoul ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.06.2006, 11:13  
Neuer Benutzer
 
Registriert seit: 15.06.2006
Beiträge: 29
amenhotheb
Standard

Wenn, das alle Felder pro Tablle sind, benoetigst Du auf jeden Fall einen Eindeutigen PK (Primaerschluessel). Die SKZ allein reicht nicht aus. Ich wuerde auf jeden Fall min. eine weitere Tabelle 'tblsportart' hinzufuegen.

Was speicherst Du in Anschrift? PLZ und Strasse und Hausnummer? Musst du atomisieren. Schau dir mal deine Tabellen genau an! Du wirst feststellen, dass es da einigen Verbesserungsbedarf gibt. Sportart gibt es in jeder Tabelle.

Tablle 'sportart'
sportart_id auto_increment (Autowert)
sportart_name
sportart_kurz (eventuell muss nicht)

Das Feld 'sportart_id' fuegst du dann in alle Tabellen ein in die du Sportarten anzeigen wilsst.

Ich denke aber noch etwas weiter und wuerde die DB komplett anders aufbauen.

Wenn Du eventuell dazu Hilfe brauchst melde dich hier nochmal.
amenhotheb ist offline   Mit Zitat antworten
Alt 26.06.2006, 11:20  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard

Danke schonmal für den Hinweis... hatte ich fast befürchtet!

Problem ist das ich das Projekt nur übernommen habe und nun zusehen muss wie ich damit zurecht komme. Einfach die Tabellen ümändern will ich mir eigentlich nicht antun, da damit auch eine art Ligascript läuft welches recht umfangreich ist...

Ich dachte eigentlich die skz wäre schon eindeutig, da die ja nur einmal vorkommen darf !?

in der Anschrift steht nur der Straßenname ohne Hausnummer.

Gibt es in dieser Form keine Möglichkeit an die Daten zu kommen ?

Vielen Dank schonmal !
madSoul ist offline   Mit Zitat antworten
Alt 26.06.2006, 11:21  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

SELECT tbl1.*, tbl2.*, tbl3.* FROM tbl3 NATURAL JOIN tbl2 NATURAL JOIN tbl1 WHERE sportart = 'fussball'

Wobei der skz Primary-Key sein sollte.
Der Faulheit halber habe ich auch * verwendet, du solltest die Spaltennamen einzeln ausschreiben:
16.14. Warum soll ich nicht SELECT * schreiben?

Ansonsten empfehle ich dir mal ein Tutorial zu JOINs (ist eigentlich recht einfach) und vielleicht auch mal das hier anschauen:
http://de.wikipedia.org/wiki/Normali...28Datenbank%29
Zergling-new ist offline   Mit Zitat antworten
Alt 26.06.2006, 11:26  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard

super, DANKE

werd mich nochmal ein bisschen einlesen...
__________________
it´s not a bug - it´s a feature...
madSoul ist offline   Mit Zitat antworten
Alt 26.06.2006, 12:25  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

SELECT tbl1.*, tbl2.*, tbl3.* FROM tbl3 NATURAL JOIN tbl2 NATURAL JOIN tbl1 WHERE tbl3.sportart = 'fussball'

kleine Korrektur
wobei wie schon erwähnt und jetzt erst von mir bei dir gesehen, sportart als Spalte ja 2x vorkommt. Das ist ja unnötig, Stichwort Redundanz und Inkonsistenz:
http://de.wikipedia.org/wiki/Redunda...Information%29
(sportart wird doppelt festgelegt)
http://de.wikipedia.org/wiki/Inkonsistenz
(sportart könnte ja bei gleicher skz in tbl2 = Basketball und in tbl3 = Fussball sein)
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
abfrage auf gleiche Spalten aus zwei Tabellen maeck Datenbanken 13 08.07.2008 10:09
Abfrage mehrere Tabellen SteiniKeule Datenbanken 14 18.04.2008 19:57
abfrage über mehrere tabellen mit einer bedingung DarkThunder PHP Tipps 2007 6 15.04.2007 17:13
SQL ABfrage über mehrere Tabellen Madden Datenbanken 17 09.05.2006 21:19
Abfrage mehrerer Tabellen per PHP (Code vereinfachen) PHP Tipps 2007 4 18.12.2005 12:34
[Erledigt] abfrage mehrere tabellen PHP Tipps 2005-2 3 31.10.2005 21:57
Abfrage aller Tabellen über Schleife PHP Tipps 2005-2 7 22.10.2005 12:16
[Erledigt] MySQL Abfrage über mehrere Tabellen [Erledigt] Datenbanken 2 14.10.2005 13:37
problem bei ausgabe einer abfrage aus 2 Tabellen Lia PHP Tipps 2005-2 2 28.07.2005 17:30
Problem 2 - komplexere Abfrage aus drei Tabellen Datenbanken 0 15.07.2005 13:59
Abfrage aus zwei Tabellen Datenbanken 1 07.06.2005 13:47
Abfrage über 3 Tabellen Datenbanken 3 20.09.2004 08:08
Abfrage zweier Tabellen funzt net richtig Datenbanken 1 17.09.2004 12:53
2 Tabellen 1 Abfrage nilsfeld Datenbanken 6 11.08.2004 11:18
Abfrage über 3 Tabellen PHP Tipps 2004 3 31.07.2004 22:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
natural join mehrere tabellen, server shutdown in progress, natural join über drei tabellen, natural join über mehrere tabellen, sql server join mehrere tabellen, progress join abfrage, 3 php abfragen in eine tabelle, c, natural join ausschreiben, natural join in abfrage php, abfrage von daten aus tabellenblättern, alle sportarten die es gibt in einer tabelle, server shutdown in progress bei sql abfrage, php abfrage über drei tabellen, http://www.php.de/datenbanken/40907-abfrage-ueber-3-tabellen.html, sql \natural join über drei tabellen\, drei tabellen natural join, natural join drei tabellen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.