MySQL-Query problem
Bobby
- datenbank
0 Bobby
Moin
ich habe eine Abfrage:
SELECT
DISTINCT Aktivitaet.Aktivitaet_ID,
Aktivitaet.Name,
Aktivitaet.Beschreibung,
(SELECT
COUNT(DISTINCT `Prozess-Aktivitaet`.Prozess_ID)
FROM `Prozess-Aktivitaet`
WHERE `Prozess-Aktivitaet`.Aktivitaet_ID = Aktivitaet.Aktivitaet_ID
GROUP BY `Prozess-Aktivitaet`.Aktivitaet_ID
)
AS Prozessanzahl,
(SELECT
COUNT(DISTINCT `Loesung-Aktivitaet`.Loesung_ID)
FROM `Loesung-Aktivitaet`
WHERE `Loesung-Aktivitaet`.Aktivitaet_ID = Aktivitaet.Aktivitaet_ID
GROUP BY `Loesung-Aktivitaet`.Aktivitaet_ID
)
AS Loesunganzahl,
(SELECT
COUNT(DISTINCT `Aktivitaet-Beduerfnis`.Beduerfnis_ID)
FROM `Aktivitaet-Beduerfnis`
WHERE `Aktivitaet-Beduerfnis`.Aktivitaet_ID = Aktivitaet.Aktivitaet_ID
GROUP BY `Aktivitaet-Beduerfnis`.Aktivitaet_ID
)
AS Beduerfnisanzahl, Aktivitaetstyp.Aktivitaetstyp
FROM Aktivitaet
LEFT JOIN
Aktivitaetstyp
ON (Aktivitaetstyp.Aktivitaetstyp_ID = Aktivitaet.Aktivitaetstyp_ID)
WHERE
EXISTS
(SELECT * FROM `Aktivitaet-Beduerfnis`
WHERE `Aktivitaet-Beduerfnis`.Aktivitaet_ID = Aktivitaet.Aktivitaet_ID AND Beduerfnis_ID='3'
)
ORDER BY Prozessanzahl DESC
Direk im PHPMyAdmin ausgeführt funktionierts. Über PHP mit mySQL-Zugriff erscheint eine Fehlermeldung:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/web226/html/host/g/web/inc/std/basicdb.class.php on line 83
SELECT DISTINCT Aktivitaet.Aktivitaet_ID, Aktivitaet.Name, Aktivitaet.Beschreibung, (SELECT COUNT(DISTINCT Prozess-Aktivitaet
.Prozess_ID) FROM Prozess-Aktivitaet
WHERE Prozess-Aktivitaet
.Aktivitaet_ID = Aktivitaet.Aktivitaet_ID GROUP BY Prozess-Aktivitaet
.Aktivitaet_ID) AS Prozessanzahl, (SELECT COUNT(DISTINCT Loesung-Aktivitaet
.Loesung_ID) FROM Loesung-Aktivitaet
WHERE Loesung-Aktivitaet
.Aktivitaet_ID = Aktivitaet.Aktivitaet_ID GROUP BY Loesung-Aktivitaet
.Aktivitaet_ID) AS Loesunganzahl, (SELECT COUNT(DISTINCT Aktivitaet-Beduerfnis
.Beduerfnis_ID) FROM Aktivitaet-Beduerfnis
WHERE Aktivitaet-Beduerfnis
.Aktivitaet_ID = Aktivitaet.Aktivitaet_ID GROUP BY Aktivitaet-Beduerfnis
.Aktivitaet_ID) AS Beduerfnisanzahl, Aktivitaetstyp.Aktivitaetstyp FROM Aktivitaet LEFT JOIN Aktivitaetstyp ON (Aktivitaetstyp.Aktivitaetstyp_ID = Aktivitaet.Aktivitaetstyp_ID) WHERE EXISTS (SELECT * FROM Aktivitaet-Beduerfnis
WHERE Aktivitaet-Beduerfnis
.Aktivitaet_ID = Aktivitaet.Aktivitaet_ID AND Beduerfnis_ID='3') ORDER BY Prozessanzahl DESC
Unknown column 'Prozessanzahl' in 'order clause'
Wieso kann ich nicht auf "Prozessanzahl" als Sortierspalte zugreifen? Was ist im PHPMyAdmin anders?
Für Tips wäre ich sehr dankbar
Gruß Bobby
Moin
Hat sich erledigt. Ich habe eine Zählfunction drin gehabt, die damit nicht klar kam. Also die Abfrage stimmt und funktioniert auch so.
Gruß Bobby