php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.03.2006, 13:21  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard verbinden von 3 Tabellen...

Hello Forum,

als absoluter Anfänger habe ich mich jetzt an etwas gewagt das ich irgendwie nicht beenden kann... *achselzuck*

ich habe 3 tabellen

tbl1 = ligasys_vereine
tbl3 = ligasys_betreuer
tbl3 = ligasys_teams

in tbl1 sind die daten der vereine gespeichert.
in tbl2 habe ich die kontaktdaten der betreuer
in tbl3 sind die teammitglieder (und die freigabe!)

mit freigabe meine ich das ich nur die daten ausgeben lassen möchte
die im feld freigabe den wert 1 haben...

hier mein query bisher:
PHP-Code:
SELECT t1.skz,t1.strasse,t1.bezeichnung,t1.plz,t1.ort,t1.land,t1.schultyp,t1.vorwahl,t1.tel,t1.fax,t1.mail,
            
t2.vorname,t2.nachname,t2.tel AS btel,t2.mobil,t2.mail AS bmail FROM ligasys_vereine AS t1ligasys_betreuer AS t2
            WHERE t1
.skz t2.skz AND t2.sportart 'fb' ORDER BY t1.landt1.plz 
somit bekomme ich alle vereindaten zusammen mit den daten der betreuer...
leider hab ich keine ahnung mehr wo ich diese freigabe option einbauen muss !?
in allen 3 tabellen gibt es ein feld "skz" das den wert zum identifizieren enthält.

sollte ich den query in dummgequatsche machen können würd ich sagen:
"such mir die skz auf tbl3 wo freigabe 1 ist, und suche mir dann aus tbl1 und tbl2 die datensätze bei denen skz gleich skz aus tbl3 ist..."

nur leider kennt meine mysql-version kein dummgequatsche
madSoul ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 23.03.2006, 06:21  
Gast
 
Beiträge: n/a
Standard Re: verbinden von 3 Tabellen...

Zitat:
Zitat von madSoul
SELECT t1.skz,t1.strasse,t1.bezeichnung,t1.plz,t1.ort,t1. land,t1.schultyp,t1.vorwahl,t1.tel,t1.fax,t1.mail,
t2.vorname,t2.nachname,t2.tel AS btel,t2.mobil,t2.mail AS bmail FROM ligasys_vereine AS t1, ligasys_betreuer AS t2
WHERE t1.skz = t2.skz AND t2.sportart = 'fb' ORDER BY t1.land, t1.plz
Damit hätte ich auch Probleme. Spätestens nach der Mittagspause.
Code:
SELECT
	t1.skz, t1.strasse, t1.bezeichnung, t1.plz, t1.ort,
	t1.land, t1.schultyp, t1.vorwahl, t1.tel, t1.fax, t1.mail,
	t2.vorname, t2.nachname, t2.tel AS btel, t2.mobil, t2.mail AS bmail
FROM
	ligasys_vereine AS t1,
	ligasys_betreuer AS t2
WHERE
	t1.skz = t2.skz
	AND t2.sportart = 'fb'
ORDER BY
	t1.land,
	t1.plz
Zitat:
Zitat von madSoul
"such mir die skz auf tbl3 wo freigabe 1 ist, und suche mir dann aus tbl1 und tbl2 die datensätze bei denen skz gleich skz aus tbl3 ist..."
Gut. Du musst es nur noch leicht umformulieren (bzw nichts von davor weglassen) und in die Reihenfolge von mysql bringen.
Code:
Gib mir die Felder <lange Liste> der Tabellen t1,t2,t3
bei denen t1 und t2 die gleichen Werte in skz haben und t1 und t3 gleichen Werte in skz haben (<=> t1,t2,t3 gleiches skz)
und in t2.sportart 'fb' steht
und in t3.freigabe 1
sortiere das Ergebnis nach ...
  Mit Zitat antworten
Alt 23.03.2006, 10:14  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard

Vielen Dank Bruchpilot

so wünscht man sich die Antworten ! Einfach ein kleiner Denkanstoß...
Hab es jetzt hinbekommen und wieder was gelernt

Hier der query der jetzt funzt:
PHP-Code:
<?php
$sql 
"SELECT 
            t1.skz,t1.strasse,t1.bezeichnung,t1.plz,t1.ort,t1.land,t1.schultyp,t1.vorwahl,t1.tel,t1.fax,t1.mail,t2.vorname,t2.nachname,t2.tel AS btel,t2.mobil,t2.mail AS bmail,t3.freigabe,t3.sportart 
            FROM 
            ligasys_vereine AS t1, ligasys_betreuer AS t2, ligasys_teams AS t3
            WHERE 
            t1.skz = t2.skz AND t1.skz = t3.skz AND t3.sportart = 'fb' AND t3.freigabe = '1'
            GROUP BY 
            t3.skz
            ORDER BY 
            t1.land, t1.plz"
;

?>
madSoul ist offline   Mit Zitat antworten
Alt 23.03.2006, 12:25  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.232
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

P.S.: Damit man etwas besser sieht was gemeint ist, empfehle ich die etwas deutlichere Schreibweise per JOIN. Prinzipiell ist das, was du machst, ein INNER JOIN. Kannst du dir ja beizeiten einmal angucken, ich finde wie gesagt, die Formulierung per JOIN etwas klarer, da dann die Bedingungen zur Verknäpfung der Tabellen (t1.skz=t2.skz) und die eigentlichen WHERE-Bedingungen (t3.sportart='fb') etwas klarer zu finden sind.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 23.03.2006, 12:27  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard

ich will ja nicht nerven, aber könntest du evtl diesen query mal mit der JOIN-Version posten... würd mich mal interessieren wie das aussehen würde...
__________________
it´s not a bug - it´s a feature...
madSoul ist offline   Mit Zitat antworten
Alt 23.03.2006, 13:13  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.232
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Code:
SELECT t1.skz, t1.strasse, t1.bezeichnung, t1.plz, t1.ort, t1.land,
       t1.schultyp, t1.vorwahl, t1.tel, t1.fax, t1.mail, t2.vorname,
       t2.nachname, t2.tel AS btel, t2.mobil, t2.mail AS bmail,
       t3.freigabe, t3.sportart  
FROM

    ligasys_vereine AS t1
    INNER JOIN
    ligasys_betreuer AS t2 ON t1.skz = t2.skz
    INNER JOIN
    ligasys_teams AS t3 ON t1.skz = t3.skz
WHERE
    t3.sportart = 'fb' AND t3.freigabe = '1'

GROUP BY  t3.skz
ORDER BY  t1.land, t1.plz
Ein weiterer Vorteil ist auch, dass du bei JOINS gezwungen bist, die verknüpfenden Bedingungen anzugeben, also "ON t1....." usw. Gerade bei der anderen Schreibweise können, solltest du verknüpfende Bedingungen zwischen Tabellen weglassen in deinem WHERE die scheinbar merkwürdigsten Sachen passieren. Bei der Ausformulierung deines INNER JOIN kriegst du einen Fehler, wenn du das ON weglässt.

Aufpassen musst du jedoch bei komplexeren WHERE-Bedingungen. Die lassen sich nicht immer ohne weiteres auch identisch mittels INNER JOIN abbilden, da das INNER JOIN logisch etwas anders funktioniert als eine gleich formulierte WHERE-Bedingung. Für dein Beispiel ist das irrelevant. Beide Varianten geben die gleiche Ergebnismenge aus.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 23.03.2006, 13:17  
Erfahrener Benutzer
 
Registriert seit: 08.08.2005
Beiträge: 272
madSoul
Standard

dankesehr !
__________________
it´s not a bug - it´s a feature...
madSoul 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
Tabellen für Vokabeltrainer anlegen... anonym01 PHP Tipps 2008 9 03.03.2008 21:18
PHP Array in MYSQL Tabellen schreiben Matt Datenbanken 1 26.02.2008 19:43
5 tabellen miteinander verknüpfen. miwo Datenbanken 2 22.09.2007 11:17
2 Tabellen verbinden wo eien davon Auswahliste ist Beutel Datenbanken 1 20.03.2007 23:52
2 Tabellen verbinden, die nichts gemeinsam haben chr Datenbanken 12 06.07.2006 18:31
3 Tabellen verbinden madSoul Datenbanken 4 30.03.2006 15:37
[Erledigt] abfrage mehrere tabellen PHP Tipps 2005-2 3 31.10.2005 21:57
3 Tabellen verbinden... Datenbanken 2 21.09.2005 21:16
MySQL - mehrere tabellen verbinden freitz PHP Tipps 2005-2 1 02.07.2005 15:44
Dubletten herausfiltern mit verbinden 2er tabellen. robo47 Datenbanken 2 12.05.2005 11:59
[Erledigt] tabellen verbinden.... PHP Tipps 2005 4 28.04.2005 11:38
Tabellen verbinden b++ Datenbanken 3 14.04.2005 11:19
[Erledigt] Ausgelesende Daten in MySQL Tabellen mit Links verbinden Datenbanken 8 15.01.2005 20:50
[Erledigt] Selectanfrage an eine Datenbank,aber aus mehreren Tabellen Datenbanken 2 26.10.2004 07:23
[Erledigt] fulltext suche priorität von tabellen setzen Datenbanken 1 09.08.2004 15:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mehr als 2 tabellen zusammenführen, 3 tabellen verbinden mit der gleichen id mysql, mysql datenbank kontakte plz verknüpfen, datenbanken 3 tabellen verbinden, php ort mit plz verbinden, drei tabellen mit gleichen daten verbinden, 3 tabellen mit einer verbinden, gleiche werte 3 tabellen, vorwahl t1

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:35 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.