Avatar billede net-base.dk Nybegynder
13. december 2006 - 16:03 Der er 5 kommentarer og
1 løsning

Hente alle i en afdeling ud fra ID på en i afdelingen

Hey.

Jeg har lavet en tabel som indeholder informationer på folk samt et ID på den afdeling de er i.

Her er den tabel som indeholder alle mine medarbejder

CREATE TABLE `1_employee` (
  `id` int(4) unsigned NOT NULL auto_increment,
  `depid` int(4) unsigned NOT NULL default '0',
  `firstname` varchar(64) collate latin1_danish_ci NOT NULL default '',
  `lastname` varchar(64) collate latin1_danish_ci NOT NULL default '',
  `email` varchar(255) collate latin1_danish_ci NOT NULL default '',
  PRIMARY KEY  (`id`)
)

Her er min tabel som indeholder alle mine afdelinger.

CREATE TABLE `1_department` (
  `id` int(4) unsigned NOT NULL auto_increment,
  `pid` int(4) unsigned NOT NULL default '0',
  `bossid` int(4) unsigned NOT NULL default '0',
  `name` varchar(64) collate latin1_danish_ci NOT NULL default '',
  PRIMARY KEY  (`id`)
)

depid i employee tabellem indeholder ID'et på den afdeling som de er i.

Det jeg har brug for er en SQL sætning som kan hente alle som er i en afdeling ud fra et ID på en af medarbejderne i afdelingen.

Håber nogle kan give mig den SQL sætning, kan nemlig ikke selv lige finde den.

Hvis i ikke er med på hvad jeg mener så spørg endelig ind til det.
Avatar billede sw_red_6 Nybegynder
13. december 2006 - 16:08 #1
du kunne prøve noget i retning af:
SELECT * FROM 1_employee WHERE depid = (SELECT depid FROM 1_employee WHERE id = 1)

den skulle finde alle medarbejdere med samme depid som den medarbejder med id = 1

Det kan muligvis laves anderledes, men kan ikke lige huske de lidt mere indviklede sql-funktionaliteter i mySQL
Avatar billede zynzz Praktikant
13. december 2006 - 16:13 #2
Sådan:?

SELECT 1_department.id,1_employee.pid FROM 1_department INNER JOIN 1_employee ON 1_department.id=1_employee.pid;
Avatar billede net-base.dk Nybegynder
13. december 2006 - 16:21 #3
sw_red_6 -> din SQL sætning virkede. Smid et svar.

zynzz -> den sql sætning du kom med gav et noget mærkeligt resultat som jeg desværre ikke kan bruge...
Avatar billede zynzz Praktikant
13. december 2006 - 16:23 #4
Ókay..., sikkert fordi jeg har taget pid... .)
Avatar billede sw_red_6 Nybegynder
13. december 2006 - 16:26 #5
så får du et svar.
har du prøvet med:
SELECT 1_department.id,1_employee.depid FROM 1_department INNER JOIN 1_employee ON 1_department.id=1_employee.depid

Den giver muligvis et andet resultat end det du fik før, hvis du bare kopiere direkte ind.
Avatar billede net-base.dk Nybegynder
13. december 2006 - 17:22 #6
den giver alle medarbejdere som er i systemet.

Men den sw_red_6's sql sætning virkede og det takker jeg for...
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