Szavazás mysql

Szavazás mysql
2010-04-26T09:27:30+02:00
2010-04-26T10:08:21+02:00
2022-11-17T13:30:44+01:00
bluediam
Szavazó modulhoz van két táblám:
csoportok (id,nev)
kerdesek (id, kerdes, csoport_id, v1,v2,v3 stb....)
valaszok (id, kerdes_id,valasz,user_id)

Olyan lekérdezést kéne csinálnom ami kilistázza az adott csoportban adott felhasználó által még meg NEM válaszolt kérdéseket.

Próbáltam a left és right join-t meg mindenfélét, de sajnos valamit nagyon elrontottam.
Több szem többet lát elven kérném az itteniek segítségét.
select * from kerdesek left join valaszok on kerdes.id=valasz.kerdes_id where kerdes.csoport=1;

Eddig jutottam ez kilistázza ugye az adott csoport összes kérdését+válaszát összekötve és azokat is amikre még nem válaszoltak.

Ha kiegészítem ezzel:
select * from kerdesek left join valaszok on kerdes.id=valasz.kerdes_id where kerdes.csoport=1 and valaszok.uid=1;

Akkor megkapom az 1-es user válaszait.
Mivel több ezer kérdés és több tízezer válaszról van szó így jó lenne optimalizálnom.
Az egész egy tárolt eljárásban lesz ami egy ID-t ad vissza a következő kérdés ID-vel.
Mutasd a teljes hozzászólást!
SELECT k.* FROM kerdesek AS k LEFT JOIN valaszok AS v ON v.kerdes_id=k.id AND v.user_id='1' WHERE v.id IS NULL

kiadja, hogy az 1-es mire nem szavazott.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd