2016-05-09 19 views
0

Ich möchte alle Benutzer-IDs und alle Einträge in der Tabelle Land zählen. Aber wenn ich meine Abfrage ausführe, zeigt es kein Ergebnis an.MySQL: Count() Unterabfrage gibt nichts zurück

SELECT (
    SELECT 
    COUNT(userId) 
    FROM 
    tbl_user 
) 
AS 
    countUser, 
(
    SELECT 
    country 
    FROM 
    tbl_user 
) 
AS 
    country 

Ich freue mich über jede Hilfe und Kommentar!

+0

Was genau ist Ihre erwartete Ausgabe? Die Anzahl der Benutzer-IDs pro Land? Außerdem macht Ihr '... im Tabellenland' keinen Sinn, da Ihre Abfrage keine solche Tabelle verwendet. – Antti29

+0

Ich bekomme alle Zahlen der Benutzer-ID, aber nur ein Land. Die Sache ist, dass ich mehr als nur ein Land habe – thissven

+0

Ich bekomme das, aber Sie möchten, dass diese Daten präsentiert werden? Benötigen Sie für jede Zeile die Gesamtzahl von 'userId's? Das macht nicht viel Sinn. – Antti29

Antwort

1

Verwenden Sie die folgende Abfrage

select (select count(userId) from tbl_user) as userCount , 
userId, country from tbl_user 
+1

fehlt Ihnen nicht die Gruppenklausel? – mqpasta

+0

Vielen Dank für Ihre Antwort! Ich habe das auch versucht, aber dann bekomme ich nur ein Ergebnis. Zum Beispiel habe ich 12 Länder, aber wegen meiner Zählung() bekomme ich nur ein Land. Ich möchte eine Tabelle (userCount), die wirklich nur alle Einträge zählt, zum Beispiel: 30 Benutzer-IDs. Und die andere Tabelle sollte alle Einträge aus der Tabelle anzeigen – thissven

+0

geändert die Abfrage @ This.Sven –

0

Diese Abfrage

select * from (
    select count(id) as countUser, name as country from tbl_user 
) b 
+0

Danke für Ihre Antwort, aber diese Lösung gibt nur ein Land zu. – thissven

+0

können Sie Ihr Schema erklären, so dass es hilfreich sein kann zu verstehen, was Sie in der Ausgabe wollen –