2017-10-29 2 views
1

Ich gebe derzeit alle meine Mitglieder aus, indem ich die MySQL-Klausel ORDER BY id DESC hinzufüge, aber ich denke, das belohnt keine Personen, die auf meinem Dienst aktiv sind.Reihenfolge der Zeilen nach Anzahl der Spalten in einer anderen Tabelle

Ich dachte über die Beurteilung der Bestellung durch die Menge der Einträge in einer anderen Tabelle haben sie unter ihrer ID.

Im Wesentlichen frage ich, ob es möglich ist, Spalten in einer MAIN-Tabelle zu sortieren, die die Anzahl der Zeilen zählt, wo sich die Benutzer-ID in der Spalte der Zeile befindet.

Etwas Pseudo zu diesem

SELECT user_id,name,etc FROM users ORDER BY ( 
    COUNT(SELECT FROM users_interactions WHERE user_id = user_id) ******* 
) ASC 

Am Ende des COUNT Aussage war die user_id = user_id nur eine Vermutung.

Antwort

3

Sie sind fast da - was Sie tun müssen, ist COUNT innen SELECT zu setzen:

SELECT user_id,name,etc FROM users u ORDER BY ( 
    SELECT COUNT(*) 
    FROM users_interactions i 
    WHERE i.user_id = u.user_id 
) ASC 

Sie auch eine JOIN mit bekannter könnte, wie folgt aus:

SELECT u.user_id, u.name, u.etc 
FROM users u 
LEFT OUTER JOIN users_interactions i ON i.user_id = u.user_id 
GROUP BY u.user_id, u.name, u.etc 
ORDER BY COUNT(*) ASC 
+0

Perfect! Sehr geschätzt. Ich liebte auch, wie du angefangen hast mit ** Du bist fast da **, fühlte mich wie meine Mutter, die mir beibrachte, wie man Fahrrad fährt. : P – Jek

Verwandte Themen