Hej,
Jeg sidder og bokser lidt med en SQL query, som driller.
Der skal hentes data fra 3 tabeller, og sættes sammen.
Min query ser sådan her ud, men viser for meget:
SELECT tracks.name AS TrackName, tracks.website, days.name AS DayName,
days.date, days.price, days.member, days.type FROM subscription LEFT
JOIN tracks ON (tracks.trid = subscription.trid) LEFT JOIN days ON
(days.trid = subscription.trid) WHERE subscription.aid =
'$_SESSION[aid]' AND days.active = '1'
$_SESSION[aid] indeholder mit bruger ID, som også findes i tabellen
subscription tabellen.
SQL for de 3 tabeller ser sådan her ud:
CREATE TABLE `days` (
`name` varchar(100) NOT NULL,
`date` varchar(10) NOT NULL,
`price` varchar(10) NOT NULL,
`member` int(1) NOT NULL default '0',
`type` int(1) NOT NULL,
`active` int(1) NOT NULL,
`aid` int(11) NOT NULL,
`trid` int(11) NOT NULL,
`did` int(11) NOT NULL auto_increment,
PRIMARY KEY (`did`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
INSERT INTO `days` (`name`, `date`, `price`, `member`, `type`, `active`,
`aid`, `trid`, `did`) VALUES ('Begynder dag for mænd', '12-12-2006',
'1000', 0, 1, 1, 1, 1, 1),
('Begynder dag for kvinder', '13-12-2006', '9999', 0, 2, 1, 1, 1, 2),
('Test track day', '11-09-2006', '799', 0, 2, 1, 1, 2, 3);
CREATE TABLE `subscription` (
`aid` int(11) NOT NULL,
`trid` int(11) NOT NULL,
`sid` int(11) NOT NULL auto_increment,
PRIMARY KEY (`sid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `subscription` (`aid`, `trid`, `sid`) VALUES (1, 1, 1),
(1, 2, 2);
CREATE TABLE `tracks` (
`name` varchar(100) NOT NULL,
`country` varchar(100) NOT NULL,
`address` varchar(100) NOT NULL,
`zip` int(11) NOT NULL,
`city` varchar(100) NOT NULL,
`website` varchar(250) NOT NULL,
`trid` int(11) NOT NULL auto_increment,
PRIMARY KEY (`trid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `tracks` (`name`, `country`, `address`, `zip`, `city`,
`website`, `trid`) VALUES ('Ring Knutstorp', 'xx', 'xx', 11, 'xx',
'
http://www.ringknutstorp.com/', 1),
('Sturup Raceway', 'xx', 'xx', 11, 'xx', '
http://www.sturupraceway.dk/', 2);
Det jeg vil, er at kigge i tabellen subscription og finde alle de entry
som aid er det samme som min variabel $_SESSION[aid].
I det her tilfælde, regner jeg med at få 2 rækker retur. Men den giver
mig alle rækkerne.
Kan mit udtryk skrives i en SQL query eller skal jeg programmer mig ud
af det via PHP?
/Thomas