En av många varianter:
UPDATE tabell1 SET correct=1 WHERE gId IN (
SELECT gID FROM tabell2
GROUP BY gID
HAVING SUM(score)=12 OR SUM(score)<=8
)
..och du kan lägga till lite extra kriterier för att begränsa
2 svar · 464 visningar · startad av Fraggel
Tabell 1
gID - Key
tID
turn
tableNbr
created
edited
played
Tabell 2
pID - Key
gID - Key
score
Detta är en DB för att hantera lottningar av turneringar
Tabell 1
gID = game ID
tID = tournament ID
turn = omgång i turneringen
tableNbr = nummer på det bord som matchen spelas vid
created och edited = tidsangivelser
played = True or False beroende på om matchen är spelad eller inte
Tabell 2
gID = game ID
pID = player ID
score = resultata för den aktuella spelare i matchen
för varje match som lottas skapas en rad i tabell 1 och två rader i tabell 2, en rad för vajre spelare i den aktuella matchen.
Exempel
tabell 1
gID,tID,turn,tableNbr,created,edited,played
10,1,1,3,2007-01-26 07:55:01,,False
11,1,1,3,2007-01-26 07:55,02,,False
tabell 2
gID,pID,score
10,15,7
10,31,1
11,34,12
11,32,3
match 10 är korrekt rapporterad och match 11 är det inte!
I detta exempel så vill jag ha en verifiering på att poängne fyllt i korrekt och detta vill jag lösa genom att enkelt kolla samtliga matcher i en viss omgång i en viss turnering. Är den korrekt rapporterad så skall summan av fältet score för båda spelarna i den aktuella matchen vara antingen <=8 eller = 12. kan jag enkelt lösa detta med EN UPDATE eller måste jag stega mig fram i forlopar, det rör sig om kanske 50 - 100 rader i varje batch!
Tips någon!
En av många varianter:
UPDATE tabell1 SET correct=1 WHERE gId IN (
SELECT gID FROM tabell2
GROUP BY gID
HAVING SUM(score)=12 OR SUM(score)<=8
)
..och du kan lägga till lite extra kriterier för att begränsa