| | | | |
| | |
| Gast
Beiträge: n/a
| Moin zusammen. Habe folgendes Problem und weiss nicht weiter. DB Struktur: ![]() http://www.jugend.efg-sb.de/sql.jpg In der Spalte user_id wird immer die id des users stehen, also sooft wie es profilfelder gibt. profil_typ sind die profilfelder die in einer anderen tabelle aufgeschluesselt sind. kann also auch eine menge felder geben, momentan sind es 15. als wert wird spaeter der wert des feldes stehen, also der name zb Max usw. sprich ich habe zu einem user alle daten in einer tabelle. nun will ich auf einer seite eine gesamtuebersicht geben und all diese daten ueber alle person anzeigen. dies habe ich mit einem join geschafft nur leider gibt er mir dann keine personen aus die nciht alle felder ausgefuellt haben. Code: select distinct Name.jug_user_profil_user_id as id, Name.jug_user_profil_wert as Name, Vorname.jug_user_profil_wert as Vorname, Geburtsdatum.jug_user_profil_wert as Geburtsdatum, Telefon_Zuhause.jug_user_profil_wert as Telefon_Zuhause, Telefon_Mobil.jug_user_profil_wert as Telefon_Mobil, Telefon_Homezone.jug_user_profil_wert as Telefon_Homezone, Email.jug_user_profil_wert as Email, ICQ.jug_user_profil_wert as ICQ, AIM.jug_user_profil_wert as AIM, YIM.jug_user_profil_wert as YIM, MSN.jug_user_profil_wert as MSN, Homepage.jug_user_profil_wert as Homepage, Strasse.jug_user_profil_wert as Strasse, PLZ.jug_user_profil_wert as PLZ, Ort.jug_user_profil_wert as Ort from jug_user_profil as Name left join jug_user_profil as Vorname on Name.jug_user_profil_user_id = Vorname.jug_user_profil_user_id left join jug_user_profil as Geburtsdatum on Name.jug_user_profil_user_id = Geburtsdatum.jug_user_profil_user_id left join jug_user_profil as Telefon_Zuhause on Name.jug_user_profil_user_id = Telefon_Zuhause.jug_user_profil_user_id left join jug_user_profil as Telefon_Mobil on Name.jug_user_profil_user_id = Telefon_Mobil.jug_user_profil_user_id left join jug_user_profil as Telefon_Homezone on Name.jug_user_profil_user_id = Telefon_Homezone.jug_user_profil_user_id left join jug_user_profil as Email on Name.jug_user_profil_user_id = Email.jug_user_profil_user_id left join jug_user_profil as ICQ on Name.jug_user_profil_user_id = ICQ.jug_user_profil_user_id left join jug_user_profil as AIM on Name.jug_user_profil_user_id = AIM.jug_user_profil_user_id left join jug_user_profil as YIM on Name.jug_user_profil_user_id = YIM.jug_user_profil_user_id left join jug_user_profil as MSN on Name.jug_user_profil_user_id = MSN.jug_user_profil_user_id left join jug_user_profil as Homepage on Name.jug_user_profil_user_id = Homepage.jug_user_profil_user_id left join jug_user_profil as Strasse on Name.jug_user_profil_user_id = Strasse.jug_user_profil_user_id left join jug_user_profil as PLZ on Name.jug_user_profil_user_id = PLZ.jug_user_profil_user_id left join jug_user_profil as Ort on Name.jug_user_profil_user_id = Ort.jug_user_profil_user_id where Name.jug_user_profil_typ=1 and Vorname.jug_user_profil_typ=2 and Geburtsdatum.jug_user_profil_typ=3 and Telefon_Zuhause.jug_user_profil_typ=4 and Telefon_Mobil.jug_user_profil_typ=5 and Telefon_Homezone.jug_user_profil_typ=6 and Email.jug_user_profil_typ=7 and ICQ.jug_user_profil_typ=8 and AIM.jug_user_profil_typ=9 and YIM.jug_user_profil_typ=10 and MSN.jug_user_profil_typ=11 and Homepage.jug_user_profil_typ=12 and Strasse.jug_user_profil_typ=13 and PLZ.jug_user_profil_typ=14 and Ort.jug_user_profil_typ=15 mysql läuft in der version 4.0.23 Danke. |
|
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Kannst du mal den SQL-Befehl formatiert hinschreiben und nochmal sagen, was du mit dem Befehl haben möchtest und welche variablen Suchkriterien in den Befehl einfließen? Mir ist nicht ganz klar, was du eigentlich möchtest. Zitat:
| |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 11.10.2005
Beiträge: 2.405
![]() ![]() ![]() | PHP-Code: und @schiker Homepage bedeutet nicht das gleiche wie Website siehe: Wikipedia - Hompage |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 02.04.2008
Beiträge: 4.032
![]() | Vielleicht versuchst du mal dein DB-Design zu erklären. Soll das so etwas wie die 5. Normalform sein? Und dann machst du 14 Self-Joins. Warum machst du nicht eine normale Personen-Tabelle, in der für die entsprechenden Daten jeweils ein Attribut steht? Es ist doch egal, wenn da einige Felder leer bleiben. Da brauchst du keinen einzigen Join und keine WHERE-Bedingung.
__________________ Gruss L |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Häh ich kapier nicht, was der SQL-Befehl soll. Ich würde sagen dein SQL-Befehl ist absoluter Schrott. Würde ein SELECT * FROM jug_user_profil WHERE jug_user_profil_user_id = $id AND jug_user_profil_typ BETWEEN 1 AND 15 LIMIT 0, 30 nicht ausreichen? Wobei die User-ID ja wohl eindeutig sein sollte, und der user_profil_typ, tja was ist das eigentlich? Warum benennst du deine Spalten auch nach der Tabelle? Sorry das ist echt ganz ganz großer Mist dein Tabellen-Layout. |
| | |
| | |
| Gast
Beiträge: n/a
| dasok dann nochmal von vorne. ich habe zwei tabellen die dieses problem betreffen. einmal die jug_user_profil und einmal die jug_user_profil_typ die jug_user_profil enthält alle daten, die jug_user_profil_typ enthält die möglichen profilfelder. in der tabelle jug_user_profil_typ steht nur: 1--->name 2--->vorname usw, also zu den nummern die bezeichnung. die struktur der tabelle jug_user_profil habt ihr ja oben als bild. dies habe ich so gemacht weil die profilfelder variabel sein sollen. man soll immer felder hinzufügen können. nehmen wir mal an das es in meinem system 20 user gibt. für jeden user gibt es informationen in den profilfeldern. aber nicht jeder user hat alle profilfelder ausgefüllt. auf einer seite will ich eine übersicht alles user mit allen profilfeldern haben. also jeder juser soll auftauchen und dazu alle profilfelder ob sie nun leer sind oder nicht. dies soll dann eine liste ergeben. ich dachte mir das es am besten wäre wenn die abfrage bereits das richtige format aufweist.--> user_id, name, vorname, email usw und das halt für alle user damit ich da einfach mit einer while drübergehen kann und eine ausgabe machen kann. was der untershied zwischen homepage und website ist, ist mir bekannt. nur ist der begriff homepage nunman verbreitet und auch den anfängern bekannt. |
|
| | |
| Erfahrener Benutzer Registriert seit: 02.04.2008
Beiträge: 4.032
![]() | Ich habe schon verstanden, was du willst. Allerdings halte ich eine normale Tabelle in diesem Fall immer noch für besser, die ist ja schliesslich auch erweiterbar. Aber wenn du unbedingt bei deiner Struktur bleiben willst, und nicht zwingend alle Felder(Typen) ausgefüllt sein müssen, dann musst du das Problem wohl anders anpacken, mit einer Abfrage allein wirst du das kaum auf die Reihe bringen. Schau mal, ob der folgende Ansatz etwa deinen Anforderungen enrtspricht: PHP-Code:
__________________ Gruss L |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| schleifen problem | amsele1986 | PHP Tipps 2008 | 3 | 21.06.2008 17:45 |
| [Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) | dr.e. | Datenbanken | 4 | 15.06.2008 19:54 |
| [Erledigt] Mysql Insert Select + Concat | Hu5eL | Datenbanken | 14 | 10.06.2008 10:39 |
| Problem mit SELECT IF | r-ene | Datenbanken | 2 | 07.02.2008 10:22 |
| datensätze defekt oder problem mit dem einlesen? | Ministry | Datenbanken | 4 | 06.07.2006 18:42 |
| SELECT AS geht bei AVG net | cyberholic | Datenbanken | 0 | 04.05.2006 09:43 |
| Mysql SELECT Abfrage -- Problem mit LIMIT | djrace | Datenbanken | 2 | 01.05.2006 12:58 |
| Problem beim Auswerten eines select Feldes | FireFIghter | PHP Tipps 2006 | 3 | 23.04.2006 15:28 |
| SELECT problem | Fatal Error | PHP Tipps 2006 | 5 | 21.04.2006 16:31 |
| [JavaScript] Event Handler in form select - Syntax? | winfo_cologne | HTML, Usability und Barrierefreiheit | 5 | 29.03.2006 16:47 |
| Problem mit select (AND, OR und Like gemixt) | pixelcut | Datenbanken | 3 | 11.05.2005 10:14 |
| [Erledigt] SELECT Problem | PHP Tipps 2005 | 6 | 08.03.2005 21:10 | |
| [Erledigt] SELECT ... LIKE Problem | Datenbanken | 10 | 05.03.2005 13:21 | |
| mysql SELECT problem | yoshy | Datenbanken | 7 | 20.02.2005 00:46 |
| [Erledigt] Select & Update Syntax Problem! | Datenbanken | 3 | 14.12.2004 18:17 | |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.