FAQ |
Kalender |
2013-04-15, 12:18 | #21 | ||
|
|||
Administratör
|
Citat:
Själv föredrar jag generellt att hålla mig borta från SPs av främst 2 anledningar. - Lättare byggprocess och inget extra att tänka på vid förändringar i affärslogik utan förändringar i databasstruktur (vilket iallafall under mina 15 år med webb varit mycket mycket vanligare). - Snabbare utvecklings i ett välutvecklat scriptspråk vilket leder till fler personer med kompetens. Och alternativen är inte SPs eller en sträng i ett scriptspråk. Query builders, content repositories, ORMs osv finns bibliotek för i alla språk. Vidare vet jag inte huruvida det är så etablerat som best practice generellt i .NET. Använder du entity framework t ex är det väl snarare tvärtom (går att använda men är manuellt extrapill, tror jag?). Och det är väl ändå välanvänt?
__________________
eldefors.com - Personlig (teknik)-blogg |
||
Svara med citat |
2013-04-15, 16:02 | #22 | ||
|
|||
Medlem
|
Citat:
Men givet att man vill använda ren sql är det väl endast Sp eller sträng sql som gäller,eller Vyer. Citat:
Men har man SQL direkt i c# koden brukar en del tycka det är rätt illa. Säker delvis p.g.a att det krävs omkompilering av Visual Studio projektet för att ändra sql:en. |
||
Svara med citat |
2013-04-15, 22:07 | #23 | ||
|
|||
Medlem
|
Har ett nytt problem nu.
Koden för att få "total_power" ifrån enskilda spelare fungerar bra. Men nu har jag en tabell med en lista på spelare där jag måste räkna ihop allas "total_power" till en enda stor summa. Vi kan kalla den "MEGA_TOTAL_POWER". Jag tror att man någonstans skall lägga en s.k. sub-query? Här är mitt försök vilket ger mig ett felmeddelanden som jag inte kan förstå: PHP-kod:
PHP-kod:
PHP-kod:
http://www.sqlteam.com/article/aggre...ed-sub-queries Senast redigerad av secag den 2013-04-15 klockan 22:13 |
||
Svara med citat |
2013-04-16, 14:15 | #24 | ||
|
|||
Medlem
|
Jag skulle nog försöka dela upp det i fler queries och undvika sub queries.
Den länken gäller sql server så det kan vara felaktig info även om sql standarden kan vara korrekt. |
||
Svara med citat |
2013-04-16, 14:21 | #25 | ||
|
|||
Medlem
|
Flera querys har väl en tendens att bli jobbiga? Alltså mer krävande?
|
||
Svara med citat |
2013-04-16, 16:29 | #26 | ||
|
|||
Medlem
|
Citat:
Men det kan faktiskt gå snabbare om du istället för en avancerad sql kör två, tre enskilda queries och kanske gör vissa summeringar i php istället, vilket avlastar databasen. Det kan även vara lättare att felsöka och optimera de enskilda frågorna mha EXPLAIN Select. Nu har jag svårt att greppa just detta case, men om det går att dela upp det så tycker jag du ska testa det.. |
||
Svara med citat |
2013-04-16, 16:36 | #27 | ||
|
|||
Medlem
|
Okej men jag kan förklara hur det ska vara.
En tabell heter crews, den hämtar jag all information ifrån "FROM crews" En tabell som heter crew_members där det kan finnas upp till 80 rader. Här gör jag "JOIN crew_members ON crews.id = crew_members.crew_id" Och crew_members innehåller endast user_id & crew_id. Ifrån detta user id så vill jag hämta en hel del information(åtminstone username och sen total_power). Vill inte loopa en query 80 gånger, känns som det blir mycket segare då. |
||
Svara med citat |
2013-04-17, 02:08 | #28 | ||
|
|||
Klarade millennium-buggen
|
Kan du bidra med koden för att få fram total_power som väl fungerar.
Kan du bidra med fler INSERT-satser så man kan få lite testdata att jobba med? |
||
Svara med citat |
2013-04-17, 08:43 | #29 | ||
|
|||
Medlem
|
Har inte helt koll på vad du vill göra och eller hur dina tabeller ser ut, men om jag inte är helt fel ute så borde du kunna göra något liknande detta:
SELECT m.username (eller liknande för att plocka ut de kolumner du vill ha) FROM crew c JOIN crew_members cm on cm.crew_id = c.crew_id JOIN members m on m.user_id = cm.user_id WHERE c.crew_id = 1 (eller vilket id du vill hämta ut medlemmarna ifrån) Vill du även ta ut t.ex. total_power så får du joina på de tabeller som innehåller informationen om detta (items? om jag minns rätt från tidigare poster?) samt gruppera på m.user_id och göra en summering på alla items för varje medlem. |
||
Svara med citat |
2013-04-17, 10:32 | #30 | ||
|
|||
Medlem
|
Löste det på egen hand..
PHP-kod:
Med denna query: PHP-kod:
PHP-kod:
Hoppas att någon hänger med i min tankegång eller har en bättre lösning |
||
Svara med citat |
Svara |
|
|