Avatar billede mbm2016 Nybegynder
24. juli 2013 - 01:19 Der er 4 kommentarer

MySQL - Forespørgsel af data fra to tabeller samtidigt

Hej eksperter,

Jeg har i min MySQL database to tabeller:
"shoppingcard"
"products"

"shoppingcard" har følgende kolonner:

productid, customerid, quantity


"products" har følgende kolonner:

id, name, price, description


Lad os sige at der lige nu står følgende rækker i "shoppingcard":

#1: 1234 (productid), 158745 (customerid), 2 (quantity)
#2: 4321 (productid), 158745 (customerid), 4 (quantity)
#3: 1221 (productid), 158745 (customerid), 6 (quantity)


og at der står følgende i "products":

#1: 1234 (id), Hat (name), 150 (price), "Flot rød hat" (description)
#2: 4321 (id), Kjole (name), 350 (price), "Brugt men fin kjole" (description)
#3: 1221 (id), Bukser (name), 595 (price), "Superseje jeans" (description)


Så vil jeg gerne hente alle de produkter som eksempelvis kunde 158745 har i "shoppingcard", MED deres tilhørende egenskaber som navn, pris, beskrivelse som ligger i den anden tabel "products".

Jeg har prøvet at tænke sådan her:

SELECT shoppingcard.customerid, products.name, products.price, products.description
FROM shoppingcard, products
WHERE shoppingcard.productid = products.id
AND shoppingcard.customerid = 158746;

Altså at jeg henter customerid, name, price og description ud fra de to tabeller "shoppingcard" og "products", hvor productid fra "shoppingcard" matcher id fra "products" OG customerid er lig med den valgte kunde.

Problemet er nu, at hvis jeg kører ovenstående SQL statement i PHPMyAdmin får jeg ikke alle produkterne hos den valgte kunde, med deres oplysninger/egenskaber ud. Det ser ud til at jeg maksimalt kan få 2 rækker ud lige meget hvad jeg prøver, og jeg har ikke "LIMIT" på

På forhånd mange tak for hjælpen
/Magnus
Avatar billede arne_v Ekspert
24. juli 2013 - 03:42 #1
Du boer faa alle raekker ud med den SQL. Er du sikker paa at data burde give flere raekker?
Avatar billede majbom Novice
24. juli 2013 - 10:15 #2
hvad giver:

SELECT productid
FROM shoppingcard
WHERE customerid = 158746


?
Avatar billede mbm2016 Nybegynder
24. juli 2013 - 12:59 #3
Sorry det skulle selvfølgelig være customerid = 158745 i SQL forespørgslen.

@splazz:

SELECT productid
FROM shoppingcard
WHERE customerid = 158745


giver én kolonne:

productid
1234
4321
1221
Avatar billede majbom Novice
24. juli 2013 - 14:00 #4
og hvad så med:

SELECT name, price, description
FROM products
WHERE id IN (1234, 4321, 1221)


?
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