Wie Sie eine Unterabfrage in einer anderen Unterabfrage mit drei Tabellen in mysql?

Ich habe drei Tabellen in meiner Datenbank finden Sie die folgende Struktur :

Benutzer

uid | fname | date_joined
---------------------------------
 1  | john  | 2013-08-25 01:00:00
 2  | rock  | 2013-08-26 01:00:00
 3  | jane  | 2013-08-27 01:00:00

Fragen

qid | uid 
---------- 
 1  |  1   
 2  |  1   
 3  |  2   
 4  |  3   
 5  |  3   
 6  |  1   
 7  |  1   
 8  |  2   
 9  |  2   

Anhänger

fid | qid
---------
 1  |  2
 2  |  1
 3  |  2
 4  |  1
 5  |  2
 6  |  3
 7  |  2

user-Tabelle enthält alle Benutzer-bezogenen Felder
Fragen Tabelle enthält alle in Frage stehenden Daten mit der foreign key-uid
Anhänger-Tabelle speichert die Informationen, wie viele mal eine Frage gefolgt

Was ich will, meine Abfrage ist :

unique uid, 
fname
question count for each user
follower count for each user

Ich geschrieben habe eine Abfrage und seine Arbeitsmethoden in Ordnung und die Rücksendung der Datensätze, wie ich will, aber der follower count ist immer 0. Hier ist meine Abfrage :

SELECT 
    u.uid, u.fname, u.date_joined , 
    (SELECT COUNT(*) FROM questions WHERE questions.uid = u.uid) AS question_count,
    (SELECT COUNT(*) FROM followers WHERE followers.qid IN ( 
        SELECT GROUP_CONCAT(qid) FROM questions WHERE questions.uid = u.uid 
        ) 
    ) AS follow_count
FROM epc_user AS u
ORDER BY follow_count DESC, question_count DESC, date_joined DESC

Ich habe versucht, mehrere verschiedene Kombinationen, aber keiner von Ihnen arbeitete, vielleicht Schreibe ich eine falsche Abfrage oder nicht möglich, verwenden Sie eine Unterabfrage in einer anderen Unterabfrage, was auch immer es sein mag. Ich möchte nur wissen, ob das möglich oder nicht und wenn möglich

InformationsquelleAutor Murtaza Malek | 2013-08-31

Schreibe einen Kommentar