Im Moment habe ich die folgende Abfrage:
SELECT name, COUNT(name), time, price, ip, SUM(price)
FROM tablename
WHERE time >= $yesterday
AND time <$today GROUP BY name
Und was ich tun möchte, ist eine DISTINCT nach Spalte "ip", d. h. hinzufügen.
SELECT DISTINCT ip FROM tablename
So meine endgültige Ausgabe wäre alle Spalten, aus allen Zeilen, wo Zeit ist heute, gruppiert nach Namen (mit Namen zählen für jede Wiederholung Namen) und keine doppelte IP-Adressen.
Wie sollte meine Anfrage aussehen? (oder alternativ, wie kann ich den fehlenden Filter zur Ausgabe mit php hinzufügen)?
Vielen Dank im Voraus.
[UPDATE]
Um die Verwirrung zu minimieren, betrachten Sie diese (vereinfachte) db-Tabelle:
| name | ip |
---------------------
| mark | 123 |
| mark | 123 |
| mark | 456 |
| dave | 789 |
| dave | 087 |
Das gewünschte Ergebnis wäre eine HTML-Tabelle, die wie folgt aussieht:
| name | name count |
----------------------------
| mark | 2 |
| dave | 2 |
Was ich derzeit bekomme, ist:
| name | name count |
----------------------------
| mark | 3 |
| dave | 2 |
(es zählt 3 Mal, auch wenn zwei Mal die gleiche IP verwendet wird).
0 Stimmen
Ich habe auch versucht SELECT DISTINCT ip FROM (SELECT name, COUNT(name), time, price, ip, SUM(price) FROM tablename WHERE time >= $yesterday AND time <$today GROUP BY name) as TABLE Aber ich bekomme einen Syntaxfehler...
0 Stimmen
Versuchen Sie es: EINZELN AUSWÄHLEN TABELLE.ip FROM (SELECT T.name, COUNT(T.name), T.time, T.price, T.ip, SUM(T.price) FROM tabellenname T WHERE time >= $yesterday AND time <$today GROUP BY name) as TABLE
0 Stimmen
- "Das angegebene Argument ist keine gültige MySQL-Ergebnisressource" :(
0 Stimmen
Ok, ich reiße mir die Haare aus, ich kann das nicht lösen!!!:) Versuchen Sie einen neuen Ansatz, neue Frage ist hier: u.nu/4kau7