Avatar billede lsskaarup Nybegynder
01. februar 2010 - 16:44 Der er 6 kommentarer og
1 løsning

Join med mange-til-mange relationstabel

Jeg skal have lidt hjælp til at lave en korrekt join på nogle tabeller. Mit problem er at jeg har en mange-til-mange relationstabel med i join, som jeg ikke lige kan få grejet rigtigt.

Mange-til-mange tabellen hedder projektmedlemmer og beskriver forholdet imellem et tilbud og en projektledere. Tilbuddet kan have mange projektledere og en projektleder kan have mange tilbud. Et hvert tilbud har én ansvarlig projektleder, og det viser jeg via et felt på tabellen projektmedlemmer.

Vi har så en søgeside, hvor man kan bl.a. kan se de enkelte sager en projektleder er på, men problemet op står når alle projektledernes tilbud skal vises. Hvis jeg så har 3 projektledere på et tilbud vises tilbudet 3 gange, hvilket jo ikke er så smart.

Nedenstående viser pt. 6 tilbud men reelt skal den kun vise 3. Problemet er at hvert tilbud har 2 projektledere

SELECT t.afdeling, t.tilbud, t.rev, t1.tilbudsnummer, r2, UNIX_TIMESTAMP(t5.r526d) AS r526d, UNIX_TIMESTAMP(t5.r526b) AS r526b, r9, r18, t5.r504, t.status, r14, r1, t4.r477, t5.r504, t5.r526a, t5.r526c, (TO_DAYS(t5.r526d)-TO_DAYS(NOW())) AS datemark, t.ordre AS ordrenr FROM tilbud as t left join projektmedlemmer as p on t.id=p.tilbudID left join stamdata as s on p.stamdataID = s.unique_id left join tilbud0 as t0 on t.id = t0.tilbudsnummer left join tilbud1 as t1 on t.id = t1.tilbudsnummer left join tilbud5 as t5 on t.id = t5.tilbudsnummer left join tilbud4 as t4 on t.id = t4.tilbudsnummer where afdeling = 2 && t1.tilbudsnummer=t.id && (t5.r526a='1') ORDER BY IF((t5.r526d = 0000-00-00 || t5.r526d IS NULL),1,0), t5.r526d ASC, t.id ASC

----------------------

Men tilføjer jeg en bestemt projektleder som betingelse, skal jeg have vist alle tilbud han er tilknyttet og ikke kun dem hvor han er ansvarlig. Nedenstående query er identisk med ovenstående, bort set fra at der er en WHERE betingelse mere.

SELECT t.afdeling, t.tilbud, t.rev, t1.tilbudsnummer, r2, UNIX_TIMESTAMP(t5.r526d) AS r526d, UNIX_TIMESTAMP(t5.r526b) AS r526b, r9, r18, t5.r504, t.status, r14, r1, t4.r477, t5.r504, t5.r526a, t5.r526c, (TO_DAYS(t5.r526d)-TO_DAYS(NOW())) AS datemark, t.ordre AS ordrenr FROM tilbud as t left join projektmedlemmer as p on t.id=p.tilbudID left join stamdata as s on p.stamdataID = s.unique_id left join tilbud0 as t0 on t.id = t0.tilbudsnummer left join tilbud1 as t1 on t.id = t1.tilbudsnummer left join tilbud5 as t5 on t.id = t5.tilbudsnummer left join tilbud4 as t4 on t.id = t4.tilbudsnummer where afdeling = 2 && t1.tilbudsnummer=t.id && (t5.r526a='1') && stamdataID = 27&& t5.r526k='0' && t5.r526k != '1' ORDER BY IF((t5.r526d = 0000-00-00 || t5.r526d IS NULL),1,0), t5.r526d ASC, t.id ASC

Hvordan får jeg joinet tabellerne korrekt, så tilbudenne vises korrekt også når der ingen projektledere er i betingelserne?
Avatar billede bauerdata Nybegynder
02. februar 2010 - 08:38 #1
Vil du paste create af tabeller og insert statements.
Det vi lette arbejde en hel del.
På forhånd tak.
Avatar billede lsskaarup Nybegynder
02. februar 2010 - 09:49 #2
Med insert mener du så dem, som man kan eksportere fra PHPMyAdmin, eller de insert som jeg laver, når jeg opretter i systemet?
Avatar billede lsskaarup Nybegynder
02. februar 2010 - 10:02 #3
Create kommer her:

CREATE TABLE `tilbud` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `tilbud` mediumint(8) unsigned NOT NULL default '0',
  `rev` smallint(5) unsigned NOT NULL default '0',
  `oprettet` date NOT NULL default '0000-00-00',
  `status` tinyint(3) unsigned NOT NULL default '1',
  `ordre` mediumint(8) unsigned NOT NULL default '0',
  `afdeling` tinyint(4) default NULL,
  `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`),
  KEY `rev` (`rev`),
  KEY `tilbud` (`tilbud`),
  KEY `afdeling` (`afdeling`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=37005 ;

______________________________________

CREATE TABLE `tilbud0` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `tilbudsnummer` mediumint(8) unsigned default NULL,
  `r9` tinytext,
  `r14` tinytext,
  `r11` tinytext,
  `r15` tinytext,
  `r12` tinytext,
  `r2` date default NULL,
  `r10` tinytext,
  `r1` tinytext,
  `r4` date default NULL,
  `r5` tinytext,
  `r5a` tinytext,
  `r6` tinytext,
  `r7` tinytext,
  `r8` tinytext,
  `r18` tinytext,
  `r19` tinytext,
  `r20` tinytext,
  `r9a` tinytext,
  `r24` tinytext,
  `submit2` tinytext,
  `r25` tinytext,
  `r26` tinytext,
  `r33` tinytext,
  `r31` tinytext,
  `r32` tinytext,
  `r32a` tinytext,
  `r42` tinytext,
  `r36` tinytext,
  `r42a` tinytext,
  `r37` tinytext,
  `r43` tinytext,
  `r38` tinytext,
  `r44` tinytext,
  `r39` tinytext,
  `r43a` tinytext,
  `r40` tinytext,
  `r44a` tinytext,
  `r41` tinytext,
  `r34` tinytext,
  `r34a` tinytext,
  `r34b` tinytext,
  `r34c` tinytext,
  `r34d` tinytext,
  `r34e` tinytext,
  `r35` tinytext,
  `r35a` tinytext,
  `r35b` tinytext,
  `r35c` tinytext,
  `r35d` tinytext,
  `r35e` tinytext,
  `r35f` tinytext,
  `r35g` tinytext,
  `r53b` tinytext,
  `r53` tinytext,
  `r53_skjult` tinytext,
  `r53a` tinytext,
  `r53a_skjult` tinytext,
  `r54` tinytext,
  `r54a` tinytext,
  `r55` tinytext,
  `r27` tinytext,
  `r28` tinytext,
  `r29` tinytext,
  `r30` tinytext,
  `r45` tinytext,
  `r58` tinytext,
  `r58a` tinytext,
  `r49a` tinytext,
  `r49` tinytext,
  `r58b` tinytext,
  `r50` tinytext,
  `r58c` tinytext,
  `r58d` tinytext,
  `r46a` tinytext,
  `r46` tinytext,
  `r47b` tinytext,
  `r47` tinytext,
  `r59` tinytext,
  `r47a` tinytext,
  `r59a` tinytext,
  `r59b` tinytext,
  `r57` tinytext,
  `r60` tinytext,
  `r60a` tinytext,
  `r61` tinytext,
  `r61a` tinytext,
  `r57a` tinytext,
  `r60b` tinytext,
  `r62` tinytext,
  `r62a` tinytext,
  `r48a` tinytext,
  `r48` tinytext,
  `63` tinytext,
  `63a` tinytext,
  `r56a` tinytext,
  `63b` tinytext,
  `r63c` tinytext,
  `r63d` tinytext,
  `r64` tinytext,
  `r56h` tinytext,
  `r56v` tinytext,
  `r56b` tinytext,
  `r63` tinytext,
  `r63a` tinytext,
  `r65` tinytext,
  `r72` tinytext,
  `r66` tinytext,
  `r66a` tinytext,
  `r73` tinytext,
  `r73a` tinytext,
  `r67` tinytext,
  `r74` tinytext,
  `r68` tinytext,
  `r75` tinytext,
  `r69` tinytext,
  `r77` tinytext,
  `r70` tinytext,
  `r78` tinytext,
  `r76` tinytext,
  `r71` tinytext,
  `r96` tinytext,
  `r97` tinytext,
  `r98` tinytext,
  `r99` tinytext,
  `r83b` tinytext,
  `r83c` tinytext,
  `r83a` tinytext,
  `thispage` tinytext,
  `reload` tinytext,
  `kunde_hidden` tinytext,
  `bygherre_hidden` tinytext,
  `submit` tinytext,
  `readonly` tinytext,
  `r63b` tinytext,
  `sprog` tinytext,
  `r83aselect` tinytext,
  `r57d` tinytext,
  `r66b` tinytext,
  `r73b` tinytext,
  `r66c` tinytext,
  `r73c` tinytext,
  `r63e` tinytext,
  `r58e` tinytext,
  `r57c` tinytext,
  `r57b` tinytext,
  `r58f` tinytext,
  `r63f` tinytext,
  `r56d` tinytext,
  `navn2` tinytext,
  `adresse2` tinytext,
  `r56e` tinytext,
  `bygAdresse2` tinytext,
  `bygNavn2` tinytext,
  `ordreHidden` tinytext,
  `r53b_skjult` tinytext,
  `r55_skjult` tinytext,
  `r4a` tinytext,
  `r19a` tinytext,
  `r4c` tinytext,
  `r4d` tinytext,
  `r4b` tinytext,
  `projektmedlem_2_id` tinytext,
  `projektmedlem_2_stamdataID` tinytext,
  `projektmedlem_2_pl` tinytext,
  `projektmedlem_2_forv_start` tinytext,
  `projektmedlem_2_forv_slut` tinytext,
  `projektmedlem_2_procent` tinytext,
  `projektmedlem_3_pl` tinytext,
  `projektmedlem_3_forv_start` tinytext,
  `projektmedlem_3_forv_slut` tinytext,
  `projektmedlem_3_procent` tinytext,
  `counter` tinytext,
  `rådgiver_1_id` tinytext,
  `rådgiver_1_type` tinytext,
  `rådgiver_1_firma` tinytext,
  `rådgiver_1_att` tinytext,
  `rådgiver_1_mail` tinytext,
  `rådgiver_1_tlf` tinytext,
  `rådgiver_1_mobil` tinytext,
  `rådgiver_2_type` tinytext,
  `rådgiver_2_firma` tinytext,
  `rådgiver_2_att` tinytext,
  `rådgiver_2_mail` tinytext,
  `rådgiver_2_tlf` tinytext,
  `rådgiver_2_mobil` tinytext,
  `rgcounter` tinytext,
  `projektmedlem_3_id` tinytext,
  `projektmedlem_3_stamdataID` tinytext,
  `projektmedlem_4_pl` tinytext,
  `projektmedlem_4_forv_start` tinytext,
  `projektmedlem_4_forv_slut` tinytext,
  `projektmedlem_4_procent` tinytext,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `tilbudsnummer` (`tilbudsnummer`),
  KEY `r2` (`r2`),
  KEY `r4` (`r4`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=37005 ;

___________________________________________

CREATE TABLE `tilbud1` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `tilbudsnummer` mediumint(8) unsigned default NULL,
  `r100` tinytext,
  `r116` tinytext,
  `r117` tinytext,
  `r118` tinytext,
  `r119` tinytext,
  `r120` tinytext,
  `r126` tinytext,
  `r127` tinytext,
  `r128` tinytext,
  `r129` tinytext,
  `r130` tinytext,
  `r136` tinytext,
  `r137` tinytext,
  `r138` tinytext,
  `r139` tinytext,
  `r140` tinytext,
  `r146` tinytext,
  `r147` tinytext,
  `r148` tinytext,
  `r149` tinytext,
  `r150` tinytext,
  `r156` tinytext,
  `r157` tinytext,
  `r158` tinytext,
  `r159` tinytext,
  `r160` tinytext,
  `r166` tinytext,
  `r167` tinytext,
  `r168` tinytext,
  `r169` tinytext,
  `r170` tinytext,
  `r101` tinytext,
  `r102` tinytext,
  `r103` tinytext,
  `r104` tinytext,
  `r105` tinytext,
  `r121` tinytext,
  `r122` tinytext,
  `r123` tinytext,
  `r124` tinytext,
  `r125` tinytext,
  `r131` tinytext,
  `r132` tinytext,
  `r133` tinytext,
  `r134` tinytext,
  `r135` tinytext,
  `r141` tinytext,
  `r142` tinytext,
  `r143` tinytext,
  `r144` tinytext,
  `r145` tinytext,
  `r151` tinytext,
  `r152` tinytext,
  `r153` tinytext,
  `r154` tinytext,
  `r155` tinytext,
  `r161` tinytext,
  `r162` tinytext,
  `r163` tinytext,
  `r164` tinytext,
  `r165` tinytext,
  `r171` tinytext,
  `r172` tinytext,
  `r173` tinytext,
  `r174` tinytext,
  `r175` tinytext,
  `r106` tinytext,
  `r107` tinytext,
  `r108` tinytext,
  `r109` tinytext,
  `r110` tinytext,
  `r176` tinytext,
  `r177` tinytext,
  `r178` tinytext,
  `r179` tinytext,
  `r180` tinytext,
  `r186` tinytext,
  `r187` tinytext,
  `r188` tinytext,
  `r189` tinytext,
  `r190` tinytext,
  `r196` tinytext,
  `r197` tinytext,
  `r198` tinytext,
  `r199` tinytext,
  `r111` tinytext,
  `r112` tinytext,
  `r113` tinytext,
  `r114` tinytext,
  `r115` tinytext,
  `r181` tinytext,
  `r182` tinytext,
  `r183` tinytext,
  `r184` tinytext,
  `r185` tinytext,
  `r191` tinytext,
  `r192` tinytext,
  `r193` tinytext,
  `r194` tinytext,
  `r195` tinytext,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `tilbudsnummer` (`tilbudsnummer`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=37005 ;

________________________________________

CREATE TABLE `tilbud4` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `tilbudsnummer` mediumint(8) unsigned default NULL,
  `r403` tinytext,
  `r405` tinytext,
  `r406` tinytext,
  `r407` tinytext,
  `r461` tinytext,
  `r462` tinytext,
  `r463` tinytext,
  `r464` tinytext,
  `r465` tinytext,
  `r466` tinytext,
  `r419` tinytext,
  `r421` tinytext,
  `r422` tinytext,
  `r423` tinytext,
  `r424` tinytext,
  `r425` tinytext,
  `r426` tinytext,
  `r428` tinytext,
  `r419a` tinytext,
  `r421a` tinytext,
  `r422a` tinytext,
  `r423a` tinytext,
  `r424a` tinytext,
  `r425a` tinytext,
  `r426a` tinytext,
  `r428a` tinytext,
  `r437` tinytext,
  `r439` tinytext,
  `r440` tinytext,
  `r441` tinytext,
  `r442` tinytext,
  `r443` tinytext,
  `r444` tinytext,
  `r446` tinytext,
  `r437a` tinytext,
  `r439a` tinytext,
  `r440a` tinytext,
  `r441a` tinytext,
  `r442a` tinytext,
  `r443a` tinytext,
  `r444a` tinytext,
  `r446a` tinytext,
  `r429` tinytext,
  `r431` tinytext,
  `r432` tinytext,
  `r433` tinytext,
  `r434` tinytext,
  `r435` tinytext,
  `r436` tinytext,
  `r447` tinytext,
  `r449` tinytext,
  `r450` tinytext,
  `r451` tinytext,
  `r452` tinytext,
  `r453` tinytext,
  `r454` tinytext,
  `r408` tinytext,
  `r409` tinytext,
  `r410` tinytext,
  `r411` tinytext,
  `r412` tinytext,
  `r467` tinytext,
  `r468` tinytext,
  `r469` tinytext,
  `r470` tinytext,
  `r471` tinytext,
  `r473` tinytext,
  `r400` tinytext,
  `r401` tinytext,
  `r402` tinytext,
  `r413` tinytext,
  `r414` tinytext,
  `r415` tinytext,
  `r416` tinytext,
  `r417` tinytext,
  `r418` tinytext,
  `r455` tinytext,
  `r456` tinytext,
  `r457` tinytext,
  `r458` tinytext,
  `r459` tinytext,
  `r460` tinytext,
  `r455a` tinytext,
  `r456a` tinytext,
  `r457a` tinytext,
  `r458a` tinytext,
  `r459a` tinytext,
  `r460a` tinytext,
  `r477` tinytext,
  `r477a` tinytext,
  `r474` tinytext,
  `r475` tinytext,
  `r476` tinytext,
  `r483` tinytext,
  `r484` tinytext,
  `r485` tinytext,
  `r486` tinytext,
  `r487` tinytext,
  `r482b` tinytext,
  `r482a` tinytext,
  `r478` tinytext,
  `r479` tinytext,
  `r480` tinytext,
  `r481` tinytext,
  `r482` tinytext,
  `r498` tinytext,
  `r488` tinytext,
  `r489` tinytext,
  `r490` tinytext,
  `r491` tinytext,
  `r492` tinytext,
  `r493` tinytext,
  `r494` tinytext,
  `r495` tinytext,
  `r496` tinytext,
  `r497` tinytext,
  `r499a` tinytext,
  `r499b` tinytext,
  `r499` tinytext,
  `r499c` tinytext,
  `r478b` tinytext,
  `r478d` tinytext,
  `r406a` tinytext,
  `r465a` tinytext,
  `r411a` tinytext,
  `r478c` tinytext,
  `r478a` tinytext,
  `r404` tinytext,
  `r464a` tinytext,
  `r472` tinytext,
  `r467a` tinytext,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `tilbudsnummer` (`tilbudsnummer`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=37005 ;

____________________________________________

CREATE TABLE `tilbud5` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `tilbudsnummer` mediumint(8) unsigned default NULL,
  `r504` int(11) NOT NULL default '0',
  `r509a` tinytext,
  `r500` tinytext,
  `r509b` tinytext,
  `r501` tinytext,
  `r509` tinytext,
  `r502` tinytext,
  `r503` tinytext,
  `r510` tinytext,
  `r511` tinytext,
  `r505` tinytext,
  `r506` tinytext,
  `r505a` tinytext,
  `r520` tinytext,
  `r514` tinytext,
  `r521` tinytext,
  `r515` tinytext,
  `r512` tinytext,
  `r507` tinytext,
  `r513` tinytext,
  `r508` tinytext,
  `r516` tinytext,
  `r523` tinytext,
  `r517` tinytext,
  `r518a` tinytext,
  `r524` tinytext,
  `r518` tinytext,
  `r519a` tinytext,
  `r525` tinytext,
  `r519` tinytext,
  `r526` text,
  `r507a` tinytext,
  `r514a` tinytext,
  `r515a` tinytext,
  `r508a` tinytext,
  `r516a` tinytext,
  `r517a` tinytext,
  `r526b` date default NULL,
  `r526a` tinytext,
  `r526c` tinytext,
  `r518b` tinytext,
  `r518c` tinytext,
  `r526d` date default NULL,
  `r522` tinytext,
  `r526g` tinytext,
  `r526k` tinytext,
  `r526e` tinytext,
  `r526j` tinytext,
  `r526f` tinytext,
  `r526h` tinytext,
  `r526i` tinytext,
  `r526radio` tinytext,
  `r526l` tinytext,
  `r526m` tinytext,
  `r526n` tinytext,
  `r510a` tinytext,
  `r511a` tinytext,
  `r510b` tinytext,
  `r510c` tinytext,
  `r541` tinytext,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `tilbudsnummer` (`tilbudsnummer`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=37005 ;

_____________________________________________

CREATE TABLE `stamdata` (
  `unique_id` mediumint(8) unsigned NOT NULL auto_increment,
  `company` smallint(5) unsigned NOT NULL default '0',
  `employee` tinytext NOT NULL,
  `firstname` tinytext NOT NULL,
  `surname` tinytext NOT NULL,
  `address` tinytext,
  `post` varchar(24) default NULL,
  `cpr` tinytext,
  `phone` tinytext,
  `phoneaccident` tinytext,
  `mobil` tinytext NOT NULL,
  `sex` set('M','F') default NULL,
  `companyphone` tinytext,
  `email` tinytext,
  `manager` varchar(64) default NULL,
  `status` tinyint(1) unsigned NOT NULL default '1',
  `relationship` smallint(5) unsigned default NULL,
  `imgext` char(3) default NULL,
  `stamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (`unique_id`),
  FULLTEXT KEY `firstname` (`firstname`,`surname`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=141 ;

_____________________________________________

CREATE TABLE `projektmedlemmer` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `stamdataID` int(11) NOT NULL default '0',
  `tilbudID` int(11) NOT NULL default '0',
  `ansvarlig` tinyint(1) NOT NULL default '0',
  `forv_start` date NOT NULL default '0000-00-00',
  `forv_slut` date NOT NULL default '0000-00-00',
  `procent` tinyint(3) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `stamdataID` (`stamdataID`,`tilbudID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=10 ;

________________________________________________
Avatar billede bauerdata Nybegynder
02. februar 2010 - 10:09 #4
Det ser ud til at du bør overveje din tabel struktur.
Dine problemer skyldes vist mest manglende normalisering.
Jeg trot ikek jeg har tid til det her sorry.
Avatar billede lsskaarup Nybegynder
02. februar 2010 - 10:09 #5
Skal måske lige uddybe tabellen Projektmedlemmer.

Det er mange-til-mange relationen, som viser hvilket projektmedlemmer der er på et tilbud, men også hvilke tilbud den enkelte medarbejder er tilknyttet. Derudover er der nogle enkelte data, der vise hvem der er ansvarlig for tilbud, en procentvis fordeling af arbejdstiden samt datoer for start og slut.

stamdataID er en fremmendnøgle der refererer til unique_id i tabellen stamdata.

tilbudID er fremmednøglen der refererer til id i tabellen tilbud.

Som en ekstra info kan jeg sige, at tilbudsnummer på tilbud0, tilbud1, tilbud4 og tilbud5 IKKE dækker over selve tilbudsnummeret. Det ligger i tabellen tilbud i feltet tilbud. Derimod dækker tilbudsnummer over et fortløbende id, lidt ulogisk når der allerede er et id på førnævnte tabeller. Hvorfor det er sådan skal jeg ikke kunne sige, sådan var systemet lavet da jeg overtog udviklingen af det, og der ligger desværre ingen dokumentation herfor.
Avatar billede lsskaarup Nybegynder
02. februar 2010 - 10:16 #6
Hvad mener du med manglende normalisering?

Ja, alle tilbudstabeller kunne være samlet til stor tabel, men denne løsning, hvor felterne navngives med tal, og for hver 100, er der en ny tabel fungere faktisk fint.

Men som jeg skrev (godt nok efter dit indlæg...), så er det et system jeg har "arvet", med kun sparsom dokumentation, og det har kørt i snart 8 år uden problemer. Derfor kan en drastisk ændring af databasen ikke kommer på tale. Jeg har dog selv tænkt over det, men det kan kun blive ved en eventuelt totalt revision af systemet.

Men jeg forstår hvis du ikke har tid, det vil nok tage lidt at komme ind i tankegangen bagved.
Avatar billede lsskaarup Nybegynder
08. marts 2010 - 11:39 #7
Nå, det lykkedes mig at lave joinen korrekt, men kan selvfølgelig ikke lige huske hvordan nu...
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