php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.10.2006, 10:36  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard [gelöst] LEFT JOIN und trotzdem nicht alle Sätze da?!?

Hallo,

ich habe eine Datenbank im Style von 1:n.

Code:
Tabelle 1: personen
ident | name
--------------
1 | Flo
2 | Alf
3 | Mike
4 | Benni

Tabelle 2: eigenschaftem
ident | zuperson | eigenschaft | wert
-----------------------------
1 | 1 | alter | 25
2 | 1 | farbe | rot
3 | 2 | alter | 26
4 | 2 | lieblingstier | hund
5 | 3 | farbe | blau
Der Aufbau muss leider so sein, da die Eigenschaften als Textfeld eingegeben werden müssen. Mir wäre dann eine n:m-Beziehung auch lieber, aber das die Daten von anderer Seite kommen habe ich leider keinen Einfluss auf die Struktur.

Mein Problem ist, ich bräuchte jetzt eine Ausgabe die Mir alle Namen mir dem passenden Alter zeigen:

Code:
Alf => 26
Flo => 25
Mike => 
Benni =>
Da ich nicht alle Felder in Tabelle eigenschaften habe benutze ich einen LEFT JOIN.

Mein Versuch:
Code:
SELECT p.ident, p.name, e.wert AS alter 
 FROM personen p 
 LEFT JOIN eigenschaften e
 ON (e.zuperson=p.ident) AND (e.eigenschaft='alter') 
 ORDER BY e.wert DESC, p.name ASC;
Lieder bekomme ich nur
Code:
Alf => 26
Flo => 25
ich habe auch schon versucht das ganze mit in die WHERE zu schreiben. Ich bekomme nicht alle 4 Personen, egal wie ich es anstelle.

Bitte um Hilfe.
Danke,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.10.2006, 11:00  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,
die Abfrage ist meiner Ansicht nach richtig, ich vermute eher einen Fehler in der Darstellung.

Exportier mal die Struktur der beiden Tabellen und ein paar Testeinträge, dann teste ich das hier bei phpMyAdmin.
Zergling-new ist offline   Mit Zitat antworten
Alt 24.10.2006, 11:19  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Hallo Zergling,
ich hab die Tabelle jetzt nochmal auf einem anderen Server über PhpMyAdmin angelegt und dort getestet. Da geht es. Da läuft die Version MySQL 4.1.13. Der Server auf dem ich getestet hatte ist ein MySQL 3.23.52. Da geht es nicht. Muss also wahrscheinlich an der Version des MySQL liegen. Wobei ich im Manual keinen Hinweis darauf gefunden hätte.
Danke für die Mühe,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 24.10.2006, 11:32  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Als Ergänzung noch:
In meinem Code steht nicht "AS alter" sondern "AS hisalter" da "alter" ja ein SQL-Befehl ist.
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann 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
Left Join.. mit ON 2 Spalten holen? kleenerandi PHP Tipps 2008 0 31.03.2008 22:48
WHERE-Clause im Left Join cycap Datenbanken 2 06.11.2007 11:06
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
LEFT OUTER JOIN auf Nicht-Tabelle inu Datenbanken 15 29.03.2007 20:21
[solved] LEFT JOIN - #1066 - Not unique table/alias moose Datenbanken 6 12.12.2006 06:41
Problem mit Inner join Jabi Datenbanken 15 09.05.2006 14:10
Left outer join, timestamps php-newbie83 Datenbanken 29 27.04.2006 09:29
LEFT OUTER JOIN für mehr als 2 Tabellen ? Alpha Centauri Datenbanken 4 05.04.2006 16:18
Select Problem Datenbanken 17 16.01.2006 21:54
[Erledigt] LEFT JOIN Query Bildung Datenbanken 6 04.11.2005 15:24
[Erledigt] LEFT JOIN funtkioniert nicht richtig Datenbanken 3 19.10.2005 17:38
[Erledigt] LEFT JOIN Problem Datenbanken 11 21.03.2005 16:36
[Erledigt] Menülinks in Kategorien per Left join Datenbanken 20 14.03.2005 12:43
[Erledigt] left outer join mit bedingung Datenbanken 2 04.03.2005 00:52
den letzte(grösten) eintrag aus LEFT JOIN Datenbanken 2 24.07.2004 18:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sätze mit trotzdem, trotzdem sätze, saetze mit trotzdem, php anzeigen alle sätze aus 2 tabellen, datenbank left join, left join nur ein wert, join alle, satz mit trotzdem, left join funktioniert nicht, join nicht alles, trotzdem-sätze, sätzen mit trotzdem, php join wert wird nicht, left join alle felder, \trotzdem-sätze\, php left join alle felder, alle join, left join nicht alle da, ein satz mit obwohl-trotzdem, datenbank leftjoin

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