Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2005

SQL Kommandon?!?

Hej!

Har precis börjat lära mig SQL och PHP i skolan, mina frågor är:

Hur kan jag få fram de varor som beställts vid mer än två tillfällen av samma kund.

Hur kan jag få fram en lista där en personal och kund har samma e-post adress.

Tabellerna är till exempel kunder, order, anställd och vara. Vilka poster som ingår i varje tabell är inte bestämt än. Problemet är att jag är nybörjare i SQL och inte vet vilka kommandon jag kan använda för att få fram denna info.

Tack på förhand

Mvh Anders

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2004

MySQL eller SQL Server eller Oracle eller DB2 eller SQLite eller PostgreSQL?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2005

MySQL

Trädvy Permalänk
Medlem
Plats
Here & There
Registrerad
Okt 2008

What I'm watching thru myTV
[Annons bortredigerad av moderator]

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2004

1) Hur kan jag få fram de varor som beställts vid mer än två tillfällen av samma kund?

Här är hjälp på vägen, helt otestat och utan garantier:

SELECT VaruID, Varunamn
FROM Varor
WHERE VaruID IN
(SELECT VaruID, COUNT(VaruID) AS numOrdrar
FROM Ordrar
WHERE COUNT(VaruID) > 1)

Jag har för mig att man måste ha med COUNT(VaruID) i SELECT-listan, men du märker väl om det funkar eller ej...

2) Hur kan jag få fram en lista där en personal och kund har samma e-post adress.

Jag vet inte riktigt vad du menar egentligen, en lista på all personal som råkar ha samma e-postadress som kunder har? Typ om man vill veta vilka i personalen som är kunder då eller?

Anyway, otestad hjälp på vägen:

SELECT * FROM Personal
INNER JOIN Kunder ON Personal.EPost = Kunder.EPost

eller kanske:

SELECT * FROM Personal, Kunder
WHERE Personal.EPost = Kunder.EPost

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2005
Citat:

[i]

SELECT VaruID, Varunamn
FROM Varor
WHERE VaruID IN
(SELECT VaruID, COUNT(VaruID) AS numOrdrar
FROM Ordrar
WHERE COUNT(VaruID) > 1)

Jag har för mig att man måste ha med COUNT(VaruID) i SELECT-listan, men du märker väl om det funkar eller ej...

Tack för snabbt svar!

Lösningen på tvåan verkar korrekt, och i så fall förslag ett

Men angående den första lösningen ... Den måste beakta om varan köpts av samma kund, i detta fall beaktar den väl enbart om varan sålts mer än en gång?

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Jun 2005

Ajabaja nu ska vi inte lösa uppgifterna i skolarbeten

studera dina läroböcker om inte annat finns svaren:

www.mysql.com

Finns en hel del att söka på Google också.

Lycka Till.

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Trädvy Permalänk
Medlem
Registrerad
Jan 2003

Har ni ingen introbok alls till SQL?

Kan rekommendera detta lilla höfte/bok, som har använts på en hel del kurser. Lättfattlig och har väl använts i säkert femton års tid vid olika högskolor/universitet.

http://www.bokus.com/b/9789186536411.html

Den tar dock bara upp själva SQL så det finns inget om PHP eller annat men den fungerar bra att ha som hjälp för just SQL.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2005

Ok, tack för tipsen

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2004
Citat:

Ursprungligen inskrivet av ande0ne
Lösningen på tvåan verkar korrekt, och i så fall förslag ett.

Men angående den första lösningen ... Den måste beakta om varan köpts av samma kund, i detta fall beaktar den väl enbart om varan sålts mer än en gång?

Förslag två är samma grej, lite omskriven bara. Jag tror båda funkar.

Sant, det tänkte jag inte på. Det den gör nu är bara att ta ut de varor som köpts mer än en gång. Men det är en bra startpunkt. Om du gör en GROUP BY KundID tillsammans med WHERE COUNT(KundID) > 1 tror jag du är nära en lösning.