SubSELECT mit mehren Datensätzen

Strafi

Erfahrenes Mitglied
Hallo,

Mein Code:

PHP:
 $stmt = $pdo->prepare("SELECT *, a.id AS antwort_id,
                                IF(a.id_user=c.tn_id, 'ja', 'nein') AS gesperrt,
                                
                                (
                                    SELECT link
                                    FROM new_forum_rubrik_download
                                    WHERE antwort_id = a.id
                                ) AS downloads
                                
                                FROM
                                    new_tn_details AS b
                                LEFT JOIN
                                     new_forum_antworten AS a
                                ON
                                    b.tn_id=a.id_user
                                LEFT JOIN
                                    new_forum_user_status AS c
                                ON
                                    a.id_user=c.tn_id
                                WHERE
                                    a.id_treat='".$result['id']."'
                                ORDER BY
                                    a.datum ASC
                            ");
        
        $stmt->execute();


Nun kann es sein das der Subselect mehre einträge findet, in diesen Fall sind das Downloads.


Ich möchte gern das in meinen Array halt noch ein Array drine ist, der alle Downloads zu einem Eintrag findet. So das ich z.B. mit 2 foreach schleifen arbeiten kann.

Aber irgendwie stell ich mich wie der letzte Moikaner an.

habe auch folgenden Fehler

Cardinality violation: 1242 Subquery returns more than 1 row'


Hat wer einen Ansatz für mich?


Grüße
 
Wenn der Subselect mehr als ein Ergebniss haben kann, musst Du ihn auslagern.

Du solltest dich aber auch nochmal mit PDO befassen.
Schau Dir mal an, wie man die prepare-Methode benutzt.
In deinem Fall sollte die query-Methode reichen.

Oder arbeitest Du an der Stelle innerhalb einer Schleife?
Wenn ja, poste bitte etwas mehr.

Gruß
 
Zurück