Witajcie,
przejdę od razu do rzeczy:
struktura tabel wygląda następująco:
CREATE TABLE IF NOT EXISTS `documentcontents` (
`docid` int(11) NOT NULL DEFAULT '0',
`title` text NOT NULL,
`fromdate` int(11) NOT NULL DEFAULT '0',
`todate` int(11) NOT NULL DEFAULT '0',
`filename` varchar(255) NOT NULL DEFAULT '',
`contenttype` varchar(255) NOT NULL DEFAULT '',
`md5sum` varchar(32) NOT NULL DEFAULT '',
`description` text NOT NULL,
UNIQUE KEY `docid` (`docid`),
KEY `md5sum` (`md5sum`),
KEY `fromdate` (`fromdate`),
KEY `todate` (`todate`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2;
CREATE TABLE IF NOT EXISTS `docreply` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`customerid` int(11) NOT NULL,
`docid` int(11) NOT NULL,
`type` varchar(255) NOT NULL,
`value` tinyint(1) NOT NULL,
`node` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `docid` (`docid`),
KEY `type` (`type`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2 ;
CREATE TABLE IF NOT EXISTS `documents` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` tinyint(4) NOT NULL DEFAULT '0',
`number` int(11) NOT NULL DEFAULT '0',
`numberplanid` int(11) NOT NULL DEFAULT '0',
`cdate` int(11) NOT NULL DEFAULT '0',
`customerid` int(11) NOT NULL DEFAULT '0',
`userid` int(11) NOT NULL DEFAULT '0',
`name` varchar(255) NOT NULL DEFAULT '',
`address` varchar(255) NOT NULL DEFAULT '',
`zip` varchar(10) NOT NULL DEFAULT '',
`city` varchar(32) NOT NULL DEFAULT '',
`ten` varchar(16) NOT NULL DEFAULT '',
`ssn` varchar(11) NOT NULL DEFAULT '',
`paytime` tinyint(4) NOT NULL DEFAULT '0',
`paytype` varchar(255) NOT NULL DEFAULT '',
`closed` tinyint(1) NOT NULL DEFAULT '0',
`reference` int(11) NOT NULL DEFAULT '0',
`extnumber` varchar(255) NOT NULL DEFAULT '',
`reason` varchar(255) NOT NULL DEFAULT '',
`cashvalue` float(6,2) NOT NULL DEFAULT '0.00',
PRIMARY KEY (`id`),
KEY `cdate` (`cdate`),
KEY `numberplanid` (`numberplanid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2 ;
Co chcę osiągnąć:
Chcę uzyskać listę osób (tj. adres, name, fromdate, todate) z ich ostatnią wiążącą umową .
Użyłem takiego zapytania:
SELECT d.name, d.address, d.id, d.customerid, dc.docid, dc.fromdate FROM `documents` d INNER JOIN documentcontents dc ON (d.id=dc.docid) WHERE d.id=(SELECT MAX(d.id) FROM documents WHERE customerid=d.customerid) AND dc.fromdate<>0 ORDER BY name ASC , fromdate DESC
Niestety nie wyrzuca wyników, a raczej wklepując go przez phpmyadmin kręci się i kręci i kręci... Czy ja popełniłem gdzieś błąd ?
Zaznaczam , że to nie ja projektowałem bazę ; )
Z góry dzięki za pomoc