Ich bin neu bei MySql und ich habe ein Problem beim Bestellen des Ergebnisses einer Abfrage.mysql Abfrage mehrere Tabellen und Zeile zählen
Ich habe 2 Tabellen:
Table1 die Nutzer meines Systems enthält
userId userName
01 Ken
02 John
03 Bob
04 Steve
Table2 enthält die Anhänger jeder Benutzer
userId, FollowerId.
02 01
01 02
02 03
02 04
so, in diesem Fall John hat 3 Anhänger : Ken, Bob und Steve.
Ich möchte eine dritte Tabelle mit 2 Spalten generieren: Benutzer der Datenbank und Anzahl der Follower pro Benutzer. Ich möchte die Tabelle nach Anzahl der Follower geordnet haben.
userId NrFollowers
02 3
01 1
03 0
04 0
im Moment bin ich den folgenden Code als erforderlich verwenden
$stmt = $conn->prepare("SELECT userId, userName FROM Table1");
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($userId, $userName);
while($stmt->fetch()) {
//count number followers
$stmtfl = $conn->prepare("SELECT * FROM Table2 WHERE userId = (?)");
$stmtfl->bind_param("s", $userId);
$stmtfl->execute();
$stmtfl->store_result();
$stmtfl->fetch();
$followCount= $stmtfl->num_rows;
//now I have $userName and $NrFollowers
Diese Lösung ist nicht eine Schleife für jede databases`s Benutzer optimiert und erlaubt nicht die Benutzer nach der Anzahl der bestellen Anhänger.
Kann mir bitte jemand helfen, die richtige Mysql-Abfrage zu schreiben?
Ihnen sehr danken. Ich habe die Demo angeschaut. Es ist genau das, was ich gesucht habe :) – zorzihit