Gå til innhold

mysql: hjelp til select query


Anbefalte innlegg

Skrevet

Skal ha en slagordkonkurranse. Dommerene skal så kunne gi de innsendte slagordene poeng. (Det er flere dommere.) I den forbindelse sliter jeg med noen select-spørringer. Dersom en dommer oppfatter et forslag som useriøst kan han gi det minuspoeng, slik at de andre dommerene skal slippe å bruke tid på å lese dette.

 

Tabellene ser slik ut:

Dommer:

dommerid : tinyint unsigned primary key

dommernavn : varchar(20);

 

Slagord:

slagordid : int unsigned primary key

slagord : varchar(255);

 

Poeng:

dommerid : tinyint unsigned primary key

slagordid : int unsigned primary key

poeng : tinyint;

 

 

Jeg trenger følgende spøring:

Finne alle slagord som en bestemt dommer ikke har bedømt ennå, og som ikke har fått minuspoeng av noen andre. Dvs. alle poster i tabellen Slagord som ikke har noen matchende poster i tabellen Poeng med en gitt dommer id, og som heller ikke har noen poster i Poeng hvor poeng er negativ, uansett dommerid.

 

(Fare for at det kan dukke opp flere spørringsproblemer etterhvert.)

Videoannonse
Annonse
Skrevet (endret)

SELECT S.* FROM Slagord AS S, Dommer AS D, Poeng AS P
   WHERE P.poeng > 0
   AND P.dommerid = D.dommerid
   AND P.slagordid = S.slagordid
   AND D.Dommerid <> $DINDOMMERID

 

Edit: Så ikke at du hadde mysql, så jeg måtte endre litt, men tror da at det der vil fungere. <> bruker som ulik i sql.

Endret av mikaelandre
Skrevet

Hmm

Den ble ikke helt riktig. Den forutsetter at det allerede er en matchende post i Poeng for at slagordet skal tas med. Jeg trenger å ha med alle som ikke har blitt bedømt av noen også.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...