getreidemuehlen
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 03.01.2006, 17:26   #1
TP-Insider
 
Benutzerbild von TobiasKa
 
Registriert seit: Feb 2002
Ort: Burgkichen (Austria)
TobiasKa ist auf einem guten Weg

Abfrage für Darstellung in Template System


Hi!
ich habe vier Datenbanken:
  • "gruppe" mit den feldern "id_gruppe" und "gruppenname"
  • "user" mit den wichtigen feldern "id_user" und "username"
  • "us_gr" mit "id_user_ug" und "id_gruppe_ug"
  • "verantwortung" mit "id_user_v" und "id_gruppe_v"
us_gr zeigt an, welcher user in welche Gruppe gehört
verantwortung zeigt an, welcher user für welche gruppe verantwortlich ist

Ich benutze das Templatesystem TBS (http://www.tinybutstrong.com)

Jetzt möchte ich eine einzige Abfrage erstellen, damit ich die "Auswertung" möglichst einfach weitergeben kann.

Es soll nach Gruppen sortiert angezeigt werden, erst die User die Verantwortung haben und dann die User die in der Gruppe sind.

muss ich der Datenbank noch felder hinzufügen das das möglich ist? irgentwie fehlt mir ein feld wo ich bestimmen lassen kann, ob der user in der GRuppe ist oder verantwortung hat.

Am ende soll ungefähr folgendes bei der Abfrage rauskommen:

gruppe | user | verantwortung
gruppe | user | mitglied
gruppe | user | mitglied

Das könnte man dann als subblock verwenden.

Hier mal eine Abfrage:
SELECT gruppenname, username
FROM user, gruppe, verantwortung, us_gr
WHERE id_user = id_user_v
OR id_user = id_user_ug
ORDER BY gruppenname

Ich kann aber so leider nicht unterscheiden...

Für Hilfe bin ich furchtbar dankbar!
__________________
Gruß
Tobias

Sag einem Klugen einen Fehler, er wird erfreut und dankbar sein.
Ein Dummer sieht dich nur als Quäler und schnappt sofort beleidigt ein.
[Karl Heinz Söhler]
TobiasKa ist offline   Mit Zitat antworten


Alt 03.01.2006, 18:54   #2
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Du musst Die Tabellen (keine Datenbanken ) auch entsprechend joinen,
sonst hast Du einen Klumpen unverwertbarer Daten.
Du machst einen Full Join, solltest aber mehrere Inner Joins machen mit den entsprechenden Verknüpfungen.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 03.01.2006, 23:09   #3
TP-Insider
 
Benutzerbild von TobiasKa
 
Registriert seit: Feb 2002
Ort: Burgkichen (Austria)
TobiasKa ist auf einem guten Weg
ah ok, für sowas braucht man einen join...
davor habe ich mich bis jetzt immer gedrückt, wie mache ich das???
__________________
Gruß
Tobias

Sag einem Klugen einen Fehler, er wird erfreut und dankbar sein.
Ein Dummer sieht dich nur als Quäler und schnappt sofort beleidigt ein.
[Karl Heinz Söhler]
TobiasKa ist offline   Mit Zitat antworten
Alt 03.01.2006, 23:28   #4
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Am besten erstmal darüber lesen und das Prinzip verstehen.
z.B. hier: http://www.little-idiot.de/mysql/mysql-118.html

Wenn Du Access hast, dann kannst Du Dir das ja mal nachbilden und im Abfrageeditor grafisch die Bezüge herstellen (Felder verknüpfen). Ich fand das immer einzigartig und eine feine Sache - wer kann das schon aus dem Ärmel schütteln, wenn viele Tabellen verknüpft sind ...
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 04.01.2006, 16:28   #5
TP-Insider
 
Benutzerbild von TobiasKa
 
Registriert seit: Feb 2002
Ort: Burgkichen (Austria)
TobiasKa ist auf einem guten Weg
Jetzt hab ich es etwas anders gemacht, ich hab für verantwortlicher der gruppe und gruppenmitglied nur noch eine tabelle (us_gr) und da gibts eine FLAG Supervisor.

Ok, jetzt hab ich folgende Abfrage zusammmengestellt:

SELECT gruppenname, username, supervisor
FROM gruppe, user, us_gr
WHERE id_user_v = id_user
AND id_gruppe_v = id_gruppe
ORDER BY gruppenname, supervisor

Wie sage ich jetzt, dass er auf jeden fall alle gruppen anzeigen soll, selbst wenn kein eintrag in der Verknüpfungstabelle ist. Ist das Right, left oder inner, outer....

danke!
__________________
Gruß
Tobias

Sag einem Klugen einen Fehler, er wird erfreut und dankbar sein.
Ein Dummer sieht dich nur als Quäler und schnappt sofort beleidigt ein.
[Karl Heinz Söhler]
TobiasKa ist offline   Mit Zitat antworten
Alt 04.01.2006, 17:24   #6
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Lieber Tobias, Du hast Dir meinen Link nicht richtig angeschaut, dort sind doch genug Praxisbeispiele, u.a. auch folgendes:
Zitat:
Bei einem OUTER JOIN gibt es immer eine Tabelle, die als erhaltene Tabelle bezeichnet wird; alle ihre Zeilen bleiben erhalten
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 04.01.2006, 20:10   #7
TP-Insider
 
Benutzerbild von TobiasKa
 
Registriert seit: Feb 2002
Ort: Burgkichen (Austria)
TobiasKa ist auf einem guten Weg
leider bin ich halt nach dem unfall net mehr so fit, sorry - muss erst wieder reinkommen

nach längerem probieren hab ich das geschafft

SELECT gruppenname, supervisor, username
FROM gruppe
LEFT OUTER JOIN user ON id_user_v = id_user
AND id_gruppe_v = id_gruppe, us_gr
ORDER BY gruppenname, supervisor

aber jetzt zeigt er mir alle möglichkeiten an und wo es nichts gibt NULL.
ich will aber wenndann nur was angezeigt haben, wenn gar keine verknüfung da ist und wenn dann nur einmal
__________________
Gruß
Tobias

Sag einem Klugen einen Fehler, er wird erfreut und dankbar sein.
Ein Dummer sieht dich nur als Quäler und schnappt sofort beleidigt ein.
[Karl Heinz Söhler]
TobiasKa ist offline   Mit Zitat antworten
Alt 04.01.2006, 20:19   #8
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Dann schliess die NULL doch aus (Where feld != NULL)

Wenn die Sachen nur einmal kommen sollen, erreichst Du das mit DISTINCT.

Das Problem ist, das ich die Daten nicht kenne und nicht weiss, welche Ausgabe Du genau haben willst, daher kann ich immer nur mutmassen
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 06.01.2006, 11:02   #9
TP-Insider
 
Benutzerbild von TobiasKa
 
Registriert seit: Feb 2002
Ort: Burgkichen (Austria)
TobiasKa ist auf einem guten Weg
du hast genau das richtige vermutet

Jetzt hab ich aber noch ein letztes Problem: Null wird immer am Anfang angezeigt, außer wenn ich DESC eintrage.
mit welchem Befehl kann ich erreichen, dass Null immer zuletzt angezeigt wird?
__________________
Gruß
Tobias

Sag einem Klugen einen Fehler, er wird erfreut und dankbar sein.
Ein Dummer sieht dich nur als Quäler und schnappt sofort beleidigt ein.
[Karl Heinz Söhler]
TobiasKa ist offline   Mit Zitat antworten
Alt 06.01.2006, 11:16   #10
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Moin Tobias,
Normal geht das nicht ausser mit DESC.

Du könntest dem Feld einen anderen Wert zuweisen, z.B.
... if(feld=NULL;'zzz';feld) as feldanzeig, ...
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 08.01.2006, 09:20   #11
TP-Insider
 
Benutzerbild von TobiasKa
 
Registriert seit: Feb 2002
Ort: Burgkichen (Austria)
TobiasKa ist auf einem guten Weg
Schlussendlich möchte ich User anzeigen, die in noch keiner Gruppe sind.

Das hab ich jetzt mal in einer Extra abfrage gemacht:
Zitat:
SELECT username, firstname, lastname, email, phone
FROM '.db_prefix.'user, '.db_prefix.'us_gr
WHERE id_user_v != id_user
Das Problem ist aber, er verknüpft ja alle Gruppen mit allen User und zeigt mir auch user an, die schon in einer Gruppe sind, weil er ja auch Datensätze anzeigt, die gerade in der entsprechenen Verknüpfung nicht vorkommen.

Ich möchte mir aber nur jene user anzeigen lassen, die gar nicth in der us_gr gruppe vorkommen.
__________________
Gruß
Tobias

Sag einem Klugen einen Fehler, er wird erfreut und dankbar sein.
Ein Dummer sieht dich nur als Quäler und schnappt sofort beleidigt ein.
[Karl Heinz Söhler]
TobiasKa ist offline   Mit Zitat antworten
Alt 08.01.2006, 11:13   #12
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Aus obigen Anweisungen hast Du doch gesehen, das Du wieder joinen musst.

Ausserdem ist genau das in dem Link oben erklärt, schau Dir mal relativ weit unten die Beispiele an
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 08.01.2006, 12:12   #13
TP-Insider
 
Benutzerbild von TobiasKa
 
Registriert seit: Feb 2002
Ort: Burgkichen (Austria)
TobiasKa ist auf einem guten Weg
Jo, natürlich hab ich da zuerst geschaut und rausgefunden, dass der LEFT JOIN der richtige ist. Aber ich lasse mir quasi nur ausgeben, was ausschließlich NICHT in der rechten Tabelle steht. Weils aber nicht geklappt hat, hab ich net gewusst ob der wirklich der richtige ist
Nur bei der Umsetzung hackts wieder:
Code:
SELECT id_user, username, firstname, lastname, email, phone 
FROM '.db_prefix.'user LEFT JOIN '.db_prefix.'us_gr ON id_user_v != id_user 
ORDER BY lastname
__________________
Gruß
Tobias

Sag einem Klugen einen Fehler, er wird erfreut und dankbar sein.
Ein Dummer sieht dich nur als Quäler und schnappt sofort beleidigt ein.
[Karl Heinz Söhler]
TobiasKa ist offline   Mit Zitat antworten
Alt 08.01.2006, 12:20   #14
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
bei der ON-Anweisung solltest Du noch die Tabellen angeben, ausserdem probier mal mit = Anweisung und dahinter WHERE tabelle.id_user_v IS NULL
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 08.01.2006, 12:33   #15
TP-Insider
 
Benutzerbild von TobiasKa
 
Registriert seit: Feb 2002
Ort: Burgkichen (Austria)
TobiasKa ist auf einem guten Weg
so zeigt er mir jetzt leider gar keine user an:

Code:
SELECT id_user, username, firstname, lastname, email, phone 
FROM '.db_prefix.'user LEFT JOIN '.db_prefix.'us_gr ON id_user_v IS NULL 
WHERE id_user_v = id_user ORDER BY lastname
__________________
Gruß
Tobias

Sag einem Klugen einen Fehler, er wird erfreut und dankbar sein.
Ein Dummer sieht dich nur als Quäler und schnappt sofort beleidigt ein.
[Karl Heinz Söhler]
TobiasKa ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Abfrage für Darstellung in Template System Abfrage für Darstellung in Template System
« hilfe bei script | str_replace() »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:04 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49