SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQL/MySQLi

MySQL/MySQLi Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL/MySQLi diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 05.11.2009, 08:55:43
toxic3008 toxic3008 ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 40
Beiträge: 2
2 Counts über verschiedene Tabellen mit Join

Hallo,

ich habe 2 Tabellen:


Tabelle USERS in der alle User aufgeführt sind - jeder User ist einem Team (UserDepartment) zugeordnet!
Code:
++++++++++++++++++
+ USERS          +
++++++++++++++++++
+ UserID         +
+ UserName       +
+ UserDepartment +
++++++++++++++++++

Und die Tabelle analytics - Sobald im Tool eine Seite angeklickt wird, wird ein Datensatz mit Uhrzeit, aufgerufene Seite und Abteilung des Mitarbeiters in die Datenbank geschrieben:
Code:
++++++++++++++++++
+ ANALYTICS      +
++++++++++++++++++
+ Department     +
+ Time           +
+ Site           +
++++++++++++++++++


Nun habe ich zunächst eine Übersicht, wo alle Teams mit der Anzahl der User aufgeführt sind:
Code:
Department  | Users
++++++++++++++++++++
Abteilung 1 |    12
Abteilung 2 |    10
Abteilung 3 |     3


SQL:
SELECT COUNT( * ) AS ZeilenUsers , UserDepartment
FROM users
GROUP BY UserDepartment
ORDER BY ZeilenUsers DESC

Nun möchte ich noch die Pagehits pro Team dahinter geschrieben bekommen, sodass dies dann etwa so ausschaut:
Code:
Department  | Users | Pagehits
+++++++++++++++++++++++++++++++
Abteilung 1 |    12 |        
Abteilung 2 |    10 |      123
Abteilung 3 |     3 |       10

Es kann auch sein, dass eine Abteilung gar keine Hits hat, sodass ein Join erforderlich ist!


Folgender Query zählt durch den LEFT-Join leider alle Zeilen, die er durch den Join rausholt:
Code:
SELECT COUNT(UserDepartment) AS ZeilenUsers , u.UserDepartment, Count (usersa_team) AS ZeilenVisits
FROM users AS u
LEFT JOIN users_analytics AS a ON (u.UserDepartment=a.usersa_department)
GROUP BY u.UserDepartment
ORDER BY ZeilenUsers DESC
Wie kann man das anders lösen?

Vielen Dank für die Hilfe im Voraus!


Grüße, Stefan
Mit Zitat antworten
  #2  
Alt 06.11.2009, 10:20:24
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 34
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
AW: 2 Counts über verschiedene Tabellen mit Join

Hallo Stefan,

obwohl du es so schön vorbildlich gegliedert hast kann ich dir trotzdem nicht foglen. Wo werden die hits gespeichert? und wo selektierst du diese im letzten statement?

und warum zählst du plötzlich die departments als users und nicht die user zum department?
Mit Zitat antworten
  #3  
Alt 06.11.2009, 10:58:51
toxic3008 toxic3008 ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 40
Beiträge: 2
AW: 2 Counts über verschiedene Tabellen mit Join

Hey,

zur näheren Erläuterung noch mal der Inhalt der Tabellen:


In der Tabele USERS stehen alle User mit der entsprechenden Abteilung!
Code:
+++++++++++++++++++++++++++++++++++
+ USERS                           +
+++++++++++++++++++++++++++++++++++
+ UserID + UserName + Department  +
-----------------------------------
+      1 + Name 1   + Abteilung 1 +
+      2 + Name 2   + Abteilung 1 +
+      3 + Name 3   + Abteilung 1 +
+      4 + Name 4   + Abteilung 2 +
+      5 + Name 5   + Abteilung 2 +
+      6 + Name 6   + Abteilung 3 +
+      7 + Name 7   + Abteilung 4 +
+++++++++++++++++++++++++++++++++++

Pro Zugriff auf eine Seite wird ein Datensatz in die Analytics Tabelle geschrieben.
Hierzu wird die Abteilung festgehalten, der Timestamp und welche Seite dies war!
Code:
++++++++++++++++++++++++++++++++++++++++
+ ANALYTICS                            +
++++++++++++++++++++++++++++++++++++++++
+ Department  + Time      + Site       +
----------------------------------------
+ Abteilung 1 + 189123123 + home.php   +
+ Abteilung 1 + 189123125 + users.php  +
+ Abteilung 1 + 189123127 + test.php   +
+ Abteilung 1 + 189123129 + xyz.php +  +
+ Abteilung 2 + 189123123 + home.php   +
+ Abteilung 2 + 189123125 + users.php  +
+ Abteilung 2 + 189123127 + test.php   +
+ Abteilung 4 + 189123129 + xyz.php +  +
++++++++++++++++++++++++++++++++++++++++

Die Ergebnistabelle, die ich gerne bekommen möchte, sieht so aus:
Code:
++++++++++++++++++++++++++++++
+ Department  + Users + Hits + 
++++++++++++++++++++++++++++++
+ Abteilung 1 +     3 +    4 + 
+ Abteilung 2 +     2 +    3 + 
+ Abteilung 3 +     1 +    - + 
+ Abteilung 4 +     1 +    1 +
++++++++++++++++++++++++++++++

Habe das SQL-Statement noch mal ein bisschen kommentiert (im alten war eine Feldbezeichnung falsch):
Code:
SELECT 
  COUNT(U.UserDepartment) AS NumUsers, # Anzahl der User/Abteilung
  U.UserDepartment, # Abteilungsname
  Count (A.Usersa_department) AS Pagehits # Abzahl der Pagehits

FROM users AS U

LEFT JOIN Users_analytics AS A # nicht jedem Team müssen Hits zugeordnet sein --> LEFT JOIN
  ON (U.UserDepartment=A.Usersa_department)

GROUP BY U.UserDepartment #Anzeigen der einzelnen Abteilungen
ORDER BY NumUsers DESC # Sortierung nach User/Abteilung
Hoffe, dass mein Problem jetzt ein bisschen verständlicher ist.

Vielen Dank!

Grüße
Mit Zitat antworten
Antwort


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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JOIN mit 3 Tabellen romanm MySQL/MySQLi 2 06.03.2009 12:54:22
5 Tabellen durch JOIN verknüpft Callisto MySQL/MySQLi 0 10.10.2007 15:05:03
3 Tabellen Left Outer Join kevmaster MySQL/MySQLi 1 28.07.2007 15:59:53
Zwei Aggregatfunktionen in JOIN über drei Tabellen Nico #949494 MySQL/MySQLi 1 29.03.2007 15:47:58
4 Tabellen verknüpfen - INNER, OUTER und LEFT Join Franzx MySQL/MySQLi 0 13.11.2006 11:10:51


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:24:29 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.


© 2001-2020 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt