count und abfrage gleichzeitig
Newbie
- datenbank
Datenbank: MySQL
Moin
Kann ich eine Abfrage machen und in dieser Abfrage gleichzeitig ein COUNT() auf eine fremde Tabelle?
Also irgendwie so:
SELECT a.COUNT(), b.username FROM a onlinelist, b users
Hi,
Kann ich eine Abfrage machen und in dieser Abfrage gleichzeitig ein COUNT() auf eine fremde Tabelle?
ja. Du benötigst eine JOIN-Bedingung sowie eine Gruppierung.
Cheatah
yo,
ja. Du benötigst eine JOIN-Bedingung sowie eine Gruppierung.
nein, er benötigt eine unterabfrage.
SELECT b.username, (SELECT COUNT(*) from onlinelist) AS Anzahl
FROM users b
Ilja
hola,
SELECT b.username, (SELECT COUNT(*) from onlinelist) AS Anzahl
FROM users b
und was soll im das bringen? zu jeder Zeile aus users die Anzahl von Zeilen aus der onlinelist zu bekommen?
Ein Subselect ist hier nicht nötig (und wenn sollte man die Subquery schon verknüpfen ;-)
Gruss,
Seppel
yo,
und wenn sollte man die Subquery schon verknüpfen ;-)
dann wäre es aber keine fremde tabelle mehr, so wie er es geschrieben hat, sondern eine verknüpfte.
Ilja
hola,
SELECT a.COUNT(), b.username FROM a onlinelist, b users
wie Cheatah schon geschrieben hat musst du die Tabellen mit einander verbinden und alles, was nicht aggregiert wird (count...), gruppieren.
ich denke dir schwebt etwas in dieser Art vor:
select count(*), b.username
from onlinelist a, users b
where a.userid = b.id
group by b.username
das würde dir die Anzahl der Tupel aus a bringen, die sich mit b verknüpfen lassen. Wie man unschwer deinem SQL-Versuch entnehmen kann, solltest du dich aber erst mal mehr mit SQL vertraut machen und zur Sicherheit immer als erstes das Ergebnis ohne count angucken - um zu sehen, ob du die Tabellen richtig verknüpft hast und kein karthesisches Produkt erzeugt hast ;-)
Gruss,
Seppel