Avatar billede dmg Nybegynder
03. februar 2007 - 01:15 Der er 2 kommentarer og
1 løsning

Kan ik finde ud af avanceret sql sætning

Hi experts,

Nu har jeg prøvet i flere dage og har nu kastet håndklædet i ringen.
Jeg laver et To Do System og har tre tabeller:

EMPLOYEES      TASKS        SHAREDTASKS
Id            Id            Id
Name          UserId        TaskId
              SharedId      UserId

Jeg vil lave en funktion hvor man kan dele en opgave med andre. Til det har jeg lavet tabellen SharedTasks og feltet SharedId i tabellen Tasks.

Jeg har lavet en foreign key mellem Employees.Id ---> Tasks.UserId
Så til denne funktion er jeg blevet nødt til at lave en bruger der hedder Shared med id 0. Dvs alle de opgaver der er shared har UserId = 0. For dette felt kan ikke stå tomt.

Når en bruger logger ind bliver alle brugerens opgaver vist ved hjælp af SELECT * FROM Tasks WHERE UserId = ".get->getUserId."
Det virker fint.

Nu vil jeg så lave denne her Shared Tasks funktion, så jeg skal ændre min sql sætning til:

SELECT * FROM Tasks WHERE UserId = ".get->getUserId." og hvis dette UserId også findes i SharedTasks.UserId betyder det jo der er et shared task for denne bruger og det skal den så også vise.

Håber virkelig der er nogen der kan hjælpe!
Avatar billede dmg Nybegynder
03. februar 2007 - 01:17 #1
Okay jeg troede jeg kunne formatere tabellerne på en anden måde.

EMPLOYEES
Id
Name

TASKS
Id
UserId
SharedId

SHAREDTASKS
Id
TaskId
UserId
Avatar billede dmg Nybegynder
03. februar 2007 - 05:41 #2
Har måske fundet ud af det?
SELECT * FROM tasks WHERE UserId = 6 or SharedId = (SELECT id FROM sharedtasks WHERE id = 2)

Det her virker, lad mig lige teste lidt mere...
Avatar billede dmg Nybegynder
03. februar 2007 - 10:55 #3
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester