Avatar billede mkjaer Nybegynder
04. juli 2005 - 14:48 Der er 9 kommentarer og
1 løsning

Hjælp til en 'simpel' Inner Join

Hej,

Jeg vil gerne have hjælp til at lave en SQL forspørgsel:

Jeg har 2 tabeller:
produkt_typer [id,produktid,produkttypeid]
produkt [id,navn,pris]

Et produkt kan være tilknyttet til flere produkt-typer!
produkt_typer.produktid svarer til produkt.id

Jeg vil gerne lave en forspørgsel, hvor alle produkter med produkttypeid 1 bliver listet med produktnavn og produktpris. Jeg skal kunne sortere listen efter prisen.

Nogle med mere logisk tankekraft end mig?

Bedste hilsner,
Martin
Avatar billede arne_v Ekspert
04. juli 2005 - 15:26 #1
prøv evt. en subquery:

SELECT navn,pris
FROM produkt
WHERE id IN (SELECT produktid FROM produkt_typer WHERE produkttypeid=X)
ORDER BY pris
Avatar billede mkjaer Nybegynder
04. juli 2005 - 22:00 #2
Den giver følgende fejl:

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT produktid
FROM produkt_typer
WHERE produkttypeid = X )
O
Avatar billede arne_v Ekspert
04. juli 2005 - 22:04 #3
hvilken version af MySQL ?

og du har erstattet X med den rigtige værdi ikke ?
Avatar billede mkjaer Nybegynder
04. juli 2005 - 22:12 #4
4.0.15

Og ja :-)  (ellers ikke noget dårligt bud)
Avatar billede arne_v Ekspert
04. juli 2005 - 22:13 #5
ups - subquery er først understøttet i 4.1
Avatar billede arne_v Ekspert
04. juli 2005 - 22:15 #6
så prøv:

SELECT DISRINCT produkt.navn,produkt.pris
FROM produkt,produkt_type
WHERE produkt.id=produkt_type.produktid AND produkttypeid=X)
ORDER BY produkt.pris
Avatar billede mkjaer Nybegynder
04. juli 2005 - 22:25 #7
tilrettet:

SELECT DISRINCT produkt.navn,produkt.pris
FROM produkt,produkt_typer
WHERE produkt.id=produkt_typer.produktid AND produkttypeid=1)
ORDER BY produkt.pris

fejl:

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '.navn, produkt.pris
FROM produkt, produkt_typer
WHERE produkt.i
Avatar billede arne_v Ekspert
04. juli 2005 - 22:26 #8
DISTINCT
Avatar billede mkjaer Nybegynder
04. juli 2005 - 22:30 #9
Ok, 2 småfejl rettet, så kører den:

SELECT  DISTINCT produkt.navn, produkt.pris
FROM produkt, produkt_typer
WHERE ( produkt.id = produkt_typer.produktid AND produkt_typer.produkttypeid = 1 )
ORDER  BY produkt.pris

Kast et svar - 1. pladsen er vist din natten over :-)
Avatar billede arne_v Ekspert
04. juli 2005 - 22:31 #10
:-)
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