Avatar billede 13thsky Nybegynder
13. november 2008 - 00:57 Der er 11 kommentarer og
1 løsning

sammenskrive to forespørgsler

Jeg har denne forespørgsel:

SELECT designnr,kategori,COUNT(*) c FROM RS08_imagelog GROUP BY designnr HAVING COUNT(*) > 1 ORDER BY c

I en anden tabel som hedder RE08_produkter er der tre kolonner: id, designnr og status.
Jeg vil kun have at forespørgslen skal returnere de designnr hvor status = 'solgt'.

Hvordan skriver jeg det ind i forespørgslen?
Avatar billede arne_v Ekspert
13. november 2008 - 01:27 #1
prøv:

SELECT designnr,kategori,COUNT(*) c
FROM RS08_imagelog,RE08_produkter
WHERE RS08_imagelog.designr=RE08_produkter.designnr AND staus='solgt'
GROUP BY designnr
HAVING COUNT(*) > 1
ORDER BY c
Avatar billede 13thsky Nybegynder
13. november 2008 - 10:42 #2
Ideen er rigtigt, men det virker desværre ikke.
Avatar billede arne_v Ekspert
14. november 2008 - 01:29 #3
Hvad sker der ?
Avatar billede 13thsky Nybegynder
14. november 2008 - 08:12 #4
jeg skal bruge den i et php script og her siger den at der er fejl i mysql_fetch_row. Og jeg har rettet de slå-fejl der var.
Avatar billede 13thsky Nybegynder
14. november 2008 - 11:49 #5
Nu har jeg prøvet mig frem og følgende virker ikke engang!

SELECT designnr,kategori,COUNT(*) c FROM RS08_imagelog,RE08_produkter GROUP BY designnr HAVING COUNT(*) > 1 ORDER BY c

- burde det ikke det?
Avatar billede 13thsky Nybegynder
14. november 2008 - 11:52 #6
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in function_menu.php on line 128
Avatar billede arne_v Ekspert
14. november 2008 - 20:36 #7
mysql_query(...) or die(mysql_error())

saa kan du se hvad der er galt.
Avatar billede 13thsky Nybegynder
17. november 2008 - 00:44 #8
Fejlen lyder: Column 'designnr' in field list is ambiguous
Avatar billede 13thsky Nybegynder
17. november 2008 - 01:06 #9
Jeg fik løst det sådan:

$forsp1 = mysql_query("SELECT RS08_imagelog.designnr, kategori,COUNT(*) c
FROM RS08_imagelog,RE08_produkter
WHERE RS08_imagelog.designnr=RE08_produkter.designnr AND (RS08_pro_nederdele.status='solgt')
GROUP BY RS08_imagelog.designnr
HAVING COUNT(*) > 1
ORDER BY c") or die(mysql_error());

Drop et svar arne_v
Avatar billede 13thsky Nybegynder
17. november 2008 - 01:07 #10
SÅDAN

$forsp1 = mysql_query("SELECT RS08_imagelog.designnr, kategori,COUNT(*) c
FROM RS08_imagelog,RE08_produkter
WHERE RS08_imagelog.designnr=RE08_produkter.designnr AND RE08_produkter.status='solgt'
GROUP BY RS08_imagelog.designnr
HAVING COUNT(*) > 1
ORDER BY c") or die(mysql_error());
Avatar billede arne_v Ekspert
17. november 2008 - 01:26 #11
Ja. Når et felt er i begge tabeller skal det prefixes med tabelnavn, selvom det er ens
i de to tabeller.

Og svar.
Avatar billede arne_v Ekspert
17. november 2008 - 01:26 #12
om igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester