cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
Forum
Aktuellste Beiträge
Forenregeln

Community
BB-Codes
Tags
Chat
Suche (Web)
Wer ist online?
Top-User

Basar


Statistik
Mitglieder gesamt: 68138
Mitglieder online: 9
Gäste online: 6
mehr...

Anzeige
Forum » Forum: Website & Webprogrammierung » Thread: MYSQL Abfrage (Zählen auf Gleiche Spalten)

Thread: MYSQL Abfrage (Zählen auf Gleiche Spalten)

Tags: join , group , by , zählen

04.02.2008 13:44 Uhr

 

Status: offline
Ich habe ein Loginsystem, welches ich gegen Proxyuser und andere schützen möchte.
Die Datenstruktur:
Tabelle User:
id|name

Tabelle Logins:
uid|date|loginname

Ich suche jetzt alle Logins in denen Das Datum (date) und die uid gleich sind und will mir den Datensatz ausgeben lassen.
Normalerweise wäre das was für Group by aber bei 2 Datensätzen geht das nicht, oder doch?
Außerdem: wie mache ich den JOIN bei diesem Bsp (so dass ich den Namen statt der uid kriege)?
___________________________
Mit dem Computer kann man alle Fehler beheben, die man ohne ihn gar nicht hätte!
04.02.2008 13:47 Uhr

 

bmk
Moderator
Status: offline
Versuch mal folgendes:
PHP:
1
2
3
SELECT User.id, User.name, Login.date
FROM User INNER JOIN Logins ON User.id = Logins.uid
GROUP BY (User.id, Login.date)
2 mal bearbeitet
___________________________
Let's code responsibly...
Webcrawler -- Portal für Dirigenten -- Musikverein Königstetten
04.02.2008 13:51 Uhr

 

zombie3456
Programmierer
Status: online
Hab ich grad einen Denkfehler oder würde er da nicht alle Werte einmal erhalten (also ähnlich wie DISTINCT)?
Da müsste man doch noch COUNT(User.id) AS count auslesen und dann nur alle betrachten, die count größer als 1 haben. Er möchte ja nur welche angezeigt haben, bei denen es mind. 2 gleiche Einträge gibt, oder?

Weiß allerdings gerade nicht, wie man das wirksam in die SQL-Abfrage einbaut, denn WHERE greift ja schon vor GROUP BY.
1 mal bearbeitet
___________________________
DURATIVUM | Blog zur Sprache Latein
04.02.2008 14:01 Uhr

 

bmk
Moderator
Status: offline
Stimmt natürlich, ein "COUNT(User.id)" muss natürlich auch dazu  :cool: 
___________________________
Let's code responsibly...
Webcrawler -- Portal für Dirigenten -- Musikverein Königstetten
04.02.2008 15:25 Uhr

 

Status: offline
hmm...klappt nicht so ganz...
syntax von grup by ist anscheinend falsch und dann nimmt er mir zuviel mit...
was geht ist das:
PHP:
1
2
3
4
5
6
SELECT l.date, u.name, l.ip
FROM logins l, logins l2, user u
WHERE u.id = l.uid
AND l.id > l2.id
AND l.date = l2.Date
AND l.uid = l2.uid
das "AND l.id > l2.id" könnte ich auch (was vl besser ist aber nicht unbedingt nötig) durch "AND l.id != l2.id" ersetzen...dann hätte ich beide einträge (zwecks IP)

Problem: die abfrage dauert über 4 sekunden!
___________________________
Mit dem Computer kann man alle Fehler beheben, die man ohne ihn gar nicht hätte!
Ähnliche Threads Forum Ähnlichkeitsgrad
 [gelöst] MySQL-Abfragen gruppieren mit Überschrift Website & Webprogrammierung 2
 Mysql zwei Tabellen verbinden Website & Webprogrammierung 1
 view oder join Website & Webprogrammierung 1
 SQL JOIN Hilfe 2 tabellen Website & Webprogrammierung 1
 [gelöst] Problem mit MySQL LEFT JOIN Website & Webprogrammierung 1
nach obennach oben

Copyright © 2008 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung