22. april 2013 - 14:22
Der er
7 kommentarer og 1 løsning
Hent antal poster fra tabel nr. 2
Hejsa. Jeg har en tabel, `type_tabel`, som giver en liste over typer. Skal jeg liste de forskellige typer, er det blot: SELECT `typenr` FROM `type_tabel` I en tabel nr. 2, `varer`, har jeg nogle varer registreret, hvor et af felterne, `type`, har `registreret `typenr`-værdien fra tabellen `type_tabel` Jeg vil gerne lave et udtræk af `type_tabel`, men som også viser det antal poster i tabellen `varer`, der har de pågældende værdier i feltet `type`. Et det noget med, at jeg skal bruge JOIN og GROUP.
Annonceindlæg fra Infor
22. april 2013 - 16:40
#1
Du skal JOIN'e dine tabeller.
22. april 2013 - 17:04
#2
At jeg JOINER tabellerne er vel ikke nok....... Hvis jeg i PHP gør ca. sådan her, så virker det: $sql = "SELECT `typenr` FROM `type_tabel`"; while($row = mysql_fetch_array($res)) { $sql2 = "SELECT COUNT(*) as `antal` FROM `varer` WHERE `type`= '".$row['typenr']."'"; echo $row['typenr']." - ".$row2['antal']; } Men jeg vil jo gerne, om det kan håndteres i én enkelt SELECT, da jeg tror min PHP-løsning belaster serveren noget mere.
22. april 2013 - 19:03
#3
Ikke testet, men dette skulle virke: SELECT t.typenr, (SELECT COUNT(*) FROM varer WHERE typenr = t.typenr) FROM type_tabel t
22. april 2013 - 19:15
#4
...eller, for at få et kortere kolonnenavn, SELECT t.typenr, (SELECT COUNT(*) FROM varer WHERE typenr = t.typenr) antal FROM type_tabel t
22. april 2013 - 20:25
#5
#3 Tak for bidraget. Hvordan får jeg vist antallet? Jeg har prøvet sådan her: SELECT t.typenr, (SELECT COUNT(*)as antal FROM varer WHERE typenr = t.typenr) FROM type_tabel t Feltet t.typenr vises korrekt, men ikke antal Jeg udskriver værdierne således: Echo $row['typenr']." - ".$row['antal']; Men der vises kun typenr. #4 Giver Syntaxfejl.
22. april 2013 - 20:30
#6
Hov - jeg fik det til at virke med: SELECT t.typenr, (SELECT COUNT(id)as antal FROM varer WHERE typenr = t.typenr) FROM type_tabel t Udskiftede COUNT(*) med COUNT(id). Mange tak for bidragene. Smid venligst et svar Christian_Belgien for løsningen.
22. april 2013 - 21:56
#7
Svar fra mig.
23. april 2013 - 00:27
#8
SELECT t.typenr, (SELECT COUNT(id)as antal FROM varer WHERE typenr = t.typenr) FROM type_tabel t -> SELECT type_tabel.typenr, COUNT(varer.id) AS antal FROM type_tabel LEFT JOIN varer ON varer.typenr = type_tabel.typenr ?
Computerworld tilbyder specialiserede kurser i database-management