SQL query Problem

  • Moin,
    ich versuche mit einer Query Profile zu filtern bei denen noch ungelesene Nachrichten zu finden sind:

    SQL
    SELECT id,name,email,email_activ,ugroup,lang 
    FROM database.profiles
    WHERE (
    	SELECT COUNT(msg_id) AS amount FROM database.pro_msgs
    		WHERE
    			deldef = 0
    			AND receiver = id
    			AND opened = 0
    			AND deleted = 0
    ) > 0


    Die Query funktioniert, aber ich wie bekomme ich "COUNT(msg_id) AS amount" in das Ergebnis, also in die jeweilige Row?

  • ich selbst habe noch nicht mit verschachtelten selects gearbeitet kann dir da also nicht helfen.
    das hier sollte aber denke ich auch gehen (und sogar performanter??)
    (deine pro_msgs hat keine id spalte oder?)


    SQL
    SELECT id, name FROM profiles RIGHT JOIN pro_msgs ON id = receiver WHERE deldef = 0 AND opened = 0 AND deleted = 0


    das selectiert für jede nachricht die id und den namen des emfängers, wenn du jetzt noch zählen willst müsste das so gehen:



    SQL
    SELECT id, name, COUNT(msg_id) AS amount FROM profiles RIGHT JOIN pro_msgs ON id = receiver WHERE deldef = 0 AND opened = 0 AND deleted = 0 GROUP BY id

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!