php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.09.2004, 18:35  
Gast
 
Beiträge: n/a
Standard Join aus 3 Tabellen mit nur einer Verknüpfung?

Ich möchte gerne 3 Tabellen miteinander verknüpfen.
Das Problem ist aber das nur 2 Tabellen miteinander verknüpft sind.

Tabelle 1: (abc_last_2w)
datum |ort1 | ort2 | ort3
24.09.04 | 1 | 3 |
25.09.04 | 2 | |
26.09.04 | 7 | |

Tabelle 2: (abc_orte)
id | ort | abk
1 | Berlin | SXF
2 | Frankfurt | FRA
3 | Nürnberg | NUE
4 | Stuttgart | STR

Tabelle 3: (abc_last_zeiten)
id | ort_id | datumab | datumbis
1 | 1 | 1096056000 | 1099080000
5 | 6 | 1099861200 | 1114372800
4 | 6 | 1099256400 | 1099256400

Ich hab jetzt schon folgenden Code geschrieben:

PHP-Code:
$query "select 2w.*, o.* from abc_last_2w 2w" .
" left outer join abc_orte o on o.id = 2w.ort1";

$query .= " order by 2w.datum ASC"#LIMIT 0,20
$result mysql_query($query); 
Er zeigt mir dann zwar die Inhalte von der Tabelle "abc_last_2w" an. Aber ich möchte ja die Namen von der Tabelle "abc_orte" haben. Die Tabelle "abc_last_zeiten" ist dann später zum überprüfen ob das Datum von "abc_last_2w" (welches noch nicht als Timestamp umgeschrieben wurde) in dem Zeitraum von der Tabelle "abc_last_zeiten" liegt.

Ich hoffe Ihr könnt mir noch folgen..
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.09.2004, 19:08  
Gast
 
Beiträge: n/a
Standard

Ich denke mal, dass wenn du die * raus nimmst und sie übsch alle nacheinander mit Koamm beim Namen nennst, wird es gehen. :wink:
  Mit Zitat antworten
Alt 23.09.2004, 12:00  
Gast
 
Beiträge: n/a
Standard

Wenn es doch so einfach wär..
Der Code sieht nun so aus..

PHP-Code:
$query "select 2w.datum, 2w.ort1, 2w.ort2, 2w.ort3, 2w.ort4, 2w.ort5, 2w.ort6, o.id, o.ort, o.abk from abc_last_2w 2w" .
" left outer join abc_orte o on o.id = 2w.ort1";

$query .= " order by 2w.datum ASC";
$result mysql_query($query); 
Und die Datenbank zeigt mir dann folgendes Ergebnis:

datum | ort1 | ort2 | ort3 | ort4 | ort5 | ort6 | id | ort | abk
24.09.04 | 1 | 3 | 6 | | | | 1 | Berlin | SXF
25.09.04 | 2 | | | | | | 2 | Frankfurt | FRA
26.09.04 | 7 | | | | | | 7 | München | MUC

Was konkret heißt, das mir auf der Webseite nur die Zahlen der eigentlichen Orte gezeigt werden und 2. wenn es gehen würde, dann ja nur für die Orte 1=Berlin, 2=Frankfurt und 7=München. Aber nicht für die Orte 3 und 6.
  Mit Zitat antworten
Alt 23.09.2004, 12:56  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

PHP-Code:
$query "select 2w.datum, 2w.ort1, 2w.ort2, 2w.ort3, 2w.ort4, 2w.ort5, 2w.ort6, o.id, o.ort, o.abk, o2.id, o2.ort, o2.abk  from abc_last_2w 2w" 
" left outer join abc_orte o on o.id = 2w.ort1 left outer join abc_orte o2 on o2.id = 2w.ort2"

$query .= " order by 2w.datum ASC"
$result mysql_query($query); 
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Alt 23.09.2004, 13:58  
Gast
 
Beiträge: n/a
Standard

Danke.
Er zeigt mir jetzt zwar alle Orte in der DB an.
Aber auf der Webseite werden ja wohl die ersten Orte durch den letzten Ort überschrieben.
Das immer nur der letzte Ort sichtbar bleibt.

PHP-Code:
<? while ($line mysql_fetch_array($result)) {
echo 
$ort1 $line['ort1'];
echo 
$ort2 $line['ort2'];
echo 
$ort3 $line['ort3'];
}
?>
Mit z.B. $line['ort1'] wird nur die Zahl angezeigt. Mit $line['ort'] zwar der Ort aber eben nur doch der letzte. Aber nicht mehr die ersten aus der DB.

Ich verzweifel langsam..
  Mit Zitat antworten
Alt 23.09.2004, 14:25  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

da hast du 2 möglichkeiten
1. mit $werte=mysql_fetch_row($result)<--edit
$werte[$pos]
wobei $pos die position der spalte in der abfrage ist

2. mit $werte=mysql_fetch_assoc($result) <--edit
$werte['spaltenname']
dabei muß in der sql abfrage sichergestellt werden das es keine namensüberschneidung gibt
zb o2.ort as ort2,o3.ort as ort3
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Alt 24.09.2004, 12:50  
Gast
 
Beiträge: n/a
Standard

Du meintest sicherlich mysql_num_rowS

Aber da wird mir ja nur die Menge der Spalten angezeigt.
Und mit Beispielsweise:
PHP-Code:
<? echo $werte[2?>
passiert da auch nix..

Und im 2. Beispiel akzeptiert der Server den Befehl mysql_num_assoc nicht.
Hab ich auch noch nie gehört und nirgends gefunden..
  Mit Zitat antworten
Alt 24.09.2004, 18:25  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

mysql_num_rows liefert die anzahl der gefundenen Zeilen der db
siehe oben ich habs geändert nicht mysql_num_.. sondern mysql_fetch_.. war gemeind
__________________
Das Problem ist der Anfang einer Lösung
wurtzel 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
join über 2 db oder tabellen einer db - performance nixahnung Datenbanken 9 23.02.2008 13:03
MySQL Join mit 3 Tabellen quichibo Datenbanken 2 18.10.2007 10:58
JOIN problem 2 tabellen - zeile(tab1) zu spalte(tab2) Ministry Datenbanken 7 31.05.2006 10:31
Problem mit Inner join Jabi Datenbanken 15 09.05.2006 14:10
LEFT OUTER JOIN für mehr als 2 Tabellen ? Alpha Centauri Datenbanken 4 05.04.2006 16:18
Abfrage über zwei Tabellen (m. JOIN?) Spiff Datenbanken 3 13.02.2006 09:32
2 Tabellen: Left outer join??? Datenbanken 2 14.09.2005 13:11
3 Tabellen mit JOIN verknüpfen? becks123 Datenbanken 6 13.08.2005 00:05
[gelöst] Daten aus zwei Tabellen, join geht nicht!? PHP Tipps 2005-2 3 14.07.2005 09:50
[Erledigt] Join mit 3 Tabellen Datenbanken 21 16.05.2005 23:20
INNER JOIN mit 4 tabellen ??? Dragon26mFR Datenbanken 5 01.05.2005 18:51
Join aus drei Tabellen Datenbanken 9 04.03.2005 10:02
Ich bekomme nen einfachen JOIN von 2 Tabellen nicht hin. pino Datenbanken 1 06.01.2005 21:09
Abfrage über 2 Tabellen / Join agrajag Datenbanken 2 14.09.2004 23:05
[Erledigt] Join für Select Count(`id`)-Abfrage über 4 Tabellen Datenbanken 4 10.07.2004 18:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql 3 tabellen miteinander verknüpfen, full outer join 3 tabellen, full join mit mehreren tabellen, http://www.php.de/datenbanken/9530-join-aus-3-tabellen-mit-nur-einer-verknuepfung.html, full outer join über drei tabellen, inner join 3 tabellen, 3 tabellen mit join verknüpfen, full outer join drei tabellen, mysql join mehrere tabellen, php 3 tabellen, sql server join 3 tabellen, mysql_num_assoc, join über verknüpfung, mehrere left joins hintereinander, 3 tabellen hintereinander joinen, sql server join mehrere tabellen, \sql server\ abfrage 3 tabellen untereinander, 3 tabellen miteinander verknüpfen sql, join 3, join von drei tabellen in eine spalte

Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 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.