Avatar billede mungojerrie Nybegynder
06. marts 2007 - 19:21 Der er 1 løsning

Foreign key - join problem

Jeg har følgende tabeller, hvorfra jeg gerne vil lave følgende udtræk

CREATE TABLE `trainingday` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `training_day` varchar(35) NOT NULL default '',
  `sort` int(10) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/* consist of foreign keys only */
CREATE TABLE `traininginfo` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `training_starttime_id` int(10) NOT NULL default '0',
  `training_endtime_id` int(10) NOT NULL default '0',
  `training_day_id` int(10) NOT NULL default '0',
  `training_place_id` int(10) NOT NULL default '0',
  `remark_id` int(10) default NULL,
  `sort` int(10) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `trainingplace` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `training_place` varchar(35) NOT NULL default '',
  `sort` int(10) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `trainingtime` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `training_time` varchar(35) NOT NULL default '',
  `sort` int(10) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Udtrækket :

select
traininginfo.id as traininginfoId,
tt1.training_time as starttime,
tt2.training_time as endtime,
training_day as day,
training_place as place
from trainingtime tt1, trainingday, trainingplace, traininginfo
inner join trainingtime tt2
on tt1.id = tt2.id
where traininginfo.training_starttime_id = tt1.id
and traininginfo.training_endtime_id = tt2.id
and trainingday.id = traininginfo.training_day_id
and trainingplace.id = traininginfo.training_place_id order by day

Problemet er at jeg i tabellen traininginfo har to foreign keys
(training_starttime_id, traininginfo.training_endtime_id) som begge peger over til en værdi i tabellen
trainingtime og hvis jeg mapper traininginfo.training_starttime_id = tt1.id og
and traininginfo.training_endtime_id = tt2.id, så får jeg ingen hit, selvom der er valide data i tabellen traininginfo

Hvad er det lige jeg gør forkert? :-)
Avatar billede mungojerrie Nybegynder
12. marts 2007 - 09:54 #1
lukker problemet, løste den på anden vis.....
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