Ich muss eine SQL-Abfrage mit PDO machen, um mit einem linken Join und einer Zählung von total zu zählen.SQL + LINKE VERBINDUNG + LIKE + COUNT
hier meine DB
TABLE CONTENT
ID | TYPE | ACTION |
1 | picture | ['1324234324', '4545647777'] |
1 | picture | ['4545647777', '7888945555'] |
1 | video | ['1324234324'] |
Tabelle Seite
ID | PAGEID |
1 | 1324234324 |
1 | 4545647777 |
1 | 7888945555 |
Und hier meine Frage! Ich möchte COUNT() für jede Art von pageid erhalten
ex: (das ist, was ich für das Ergebnis benötigen)
- Seite 1324234324 haben 1 Bild und 1 Video
- Seite 4545647777 2 Bild haben und 0 Video
- Seite 7888945555 haben 1 Bild und 0 Video
Jetzt meine Frage ist:
SELECT
A.page_name AS page_name,
IFNULL(B.countId, 0) AS total_picture,
IFNULL(C.countId, 0) AS total_video
FROM page A
LEFT JOIN (SELECT action, COUNT(id) as countId FROM content WHERE type = 'picture') B ON (B.action LIKE CONCAT('%', A.page_id, '%'))
LEFT JOIN (SELECT action, COUNT(id) as countId FROM content WHERE type = 'video') C ON (C.action LIKE CONCAT('%', A.page_id, '%'));
Aber das Ergebnis ist wirklich nicht das, was ich erwarte: -/
Kann mir bitte jemand damit helfen? Seine seit 10 Stunden und ich habe keine Ahnung :-(
Wofür ist die ID-Spalte? Warum sind sie alle 1? – Terminus
Auch diese ganze Sache wäre wahrscheinlich einfacher, wenn Sie die 'content' Tabelle normalisieren – Terminus
Sie haben' A.page_id' aber es gibt keine Spalte mit diesem Namen, Sie haben 'PAGEID' und' A.page_name' sollten Sie nicht 'A.page' und' B.countId' als 'B.ID'? * "Aber das Ergebnis ist wirklich nicht das, was ich erwarte" * - Was sind "Ergebnisse", die du gerade bekommst? Gibt es Fehler oder suchen Sie nicht nach ihnen? Funktioniert die Abfrage in Ihrer Konsole, nur nicht in PDO oder haben Sie noch kein PDO dafür geschrieben? Ihre Frage ist unklar, wie Ihre Anfrage ist. –