|
| Count Fra : Torben |
Dato : 17-06-09 04:28 |
|
Hej venner
Jeg slås med noget SQL i Mysql-sammenhæng: Min sql-forespørgsel ser i
øjeblikket sådan ud:
$query = "SELECT t2.navn,
t2.id as emneID,
COUNT( t1.id ) as antal
FROM RV2_ARTIKLER as t1,
RV2_EMNER as t2
WHERE ( SELECT COUNT( * )
FROM RV2_ARTIKLER as t3
WHERE t1.id = t3.id ) > 1
AND t1.emneID = t2.id
AND t1.fratid >= DATE_SUB( CURDATE( ), INTERVAL 7
DAY )
GROUP BY t2.id
ORDER BY antal DESC
LIMIT 0,1000";
Som det fremgår vil jeg gerne find de artikler grupperet på emner der
opfylder kravet at der er flere end 5 artikler. Hvordan gør jeg?
| |
Martin (17-06-2009)
| Kommentar Fra : Martin |
Dato : 17-06-09 12:42 |
|
Torben wrote:
> Hej venner
>
> Jeg slås med noget SQL i Mysql-sammenhæng: Min sql-forespørgsel ser i
> øjeblikket sådan ud:
>
> $query = "SELECT t2.navn,
> t2.id as emneID,
> COUNT( t1.id ) as antal
> FROM RV2_ARTIKLER as t1,
> RV2_EMNER as t2
> WHERE ( SELECT COUNT( * )
> FROM RV2_ARTIKLER as t3
> WHERE t1.id = t3.id ) > 1
> AND t1.emneID = t2.id
> AND t1.fratid >= DATE_SUB( CURDATE( ), INTERVAL 7
> DAY )
> GROUP BY t2.id
> ORDER BY antal DESC
> LIMIT 0,1000";
>
> Som det fremgår vil jeg gerne find de artikler grupperet på emner der
> opfylder kravet at der er flere end 5 artikler. Hvordan gør jeg?
HAVING antal* > 5
Lige efter eller før group by (kan ikke lige helt huske det)
* = Bemærk at antal i dette tilfælde er din COUNT() fra SELECT
HAVING skal have noget fra SELECT'en af for at kunne arbejde (husk at
fjerne stjernen)
Hvis jeg ellers har forstået spørgsmålet korrekt :)
| |
Torben (19-06-2009)
| Kommentar Fra : Torben |
Dato : 19-06-09 07:09 |
|
Tak Martin
Det virker bare!
| |
|
|