[MySQL] Abfrage klappt nicht

LasMiranda

kanz pöhse
ID: 28058
L
5 Mai 2006
3.160
340
PHP:
SELECT
 `d`.`id` AS `id`,
 `d`.`frage` AS `frage`,
 `d`.`status` AS `status`,
 (
  SELECT
   COUNT(*)
  FROM
   `umfrage_teilnehmer` AS `t`
  WHERE
   `t`.`umfrage_id` = `d`.`id`
 ) AS `anzahl`
 FROM
 `umfrage_daten` AS `d`,
 `umfrage_teilnehmer` AS `t`

Ich hab diese MySQL-Abfrage "gebastelt", aber scheinbar klappt das mit der Subquery unter MySQL 4 nicht, oder es ist ein anderer Fehler, obwohl das "Missverständnis" (Fehlermeldung) bei der Subquery beginnt.

Das Problem ist, dass umfrage_teilnehmer nicht gefüllt ist und wenn ich eine einfache Abfrage mache, dann kommt da immer Null raus, da es keine Übereinstimmung mit umfrage_daten gibt.

Kann mir da jemand helfen. :-/
Es soll also, auch wenn umfrage_teilnehmer leer ist ein Ergebnis zurückgegeben werden - Anzahl in dem Falle 0 und die Frage mit ID und sowas.
 
PHP:
(
  SELECT
   COUNT(*)
  FROM
   `umfrage_teilnehmer` AS `t`
  WHERE
   `t`.`umfrage_id` = `d`.`id`
 ) AS `anzahl`

Was bitte ist denn in der Unterabfrage `d`.`id`? Da fehlt wohl die Tabelle umfrage_daten.
 
Seh ich genauso

Müsste so aussehen:

PHP:
SELECT
 `d`.`id` AS `id`,
 `d`.`frage` AS `frage`,
 `d`.`status` AS `status`,
 (
  SELECT
   COUNT(*)
  FROM
   `umfrage_teilnehmer` AS `t`,
   `umfrage_daten` AS `d`
  WHERE
   `t`.`umfrage_id` = `d`.`id`
 ) AS `anzahl`
 FROM
 `umfrage_daten` AS `d`,
 `umfrage_teilnehmer` AS `t`
 
Dein Query ist vollkommen quatsch... und ein subquery ist auch nicht wirklich nötig, das geht schneller mit nem LEFT JOIN.

PHP:
SELECT
	umfrage_daten.id,
	umfrage_daten.frage,
	umfrage_daten.status,
	COUNT(umfrage_teilnehmer.umfrage_id) AS anzahl
FROM
	umfrage_daten LEFT JOIN,
	umfrage_teilnehmer ON (umfrage_teilnehmer.umfrage_id = umfrage_daten.id)
GROUP BY
	umfrage_daten.id