Join over 3 tabeller
Ved ikke om dette kan lade sig gøre med kun SQL Query, eller om jeg skal have lidt PHP indover.Har tre tabeller, som ser ud som følger:
CREATE TABLE IF NOT EXISTS `cards` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(255) DEFAULT NULL,
`Edition` varchar(255) DEFAULT NULL,
`Color` varchar(255) DEFAULT NULL,
`Type` varchar(255) DEFAULT NULL,
`Rarity` varchar(255) DEFAULT NULL,
`Cost` varchar(255) DEFAULT NULL,
`PT` varchar(255) DEFAULT NULL,
`Text` longtext,
`CMC` varchar(255) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=24597 ;
CREATE TABLE IF NOT EXISTS `haves` (
`user` varchar(9) NOT NULL,
`card` varchar(255) NOT NULL,
`quantity` varchar(3) NOT NULL,
`cardcondition` int(2) NOT NULL,
`foil` int(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `editions` (
`shortname` varchar(5) NOT NULL,
`setname` varchar(250) NOT NULL,
`cards` varchar(50) NOT NULL,
`releasedate` date NOT NULL,
PRIMARY KEY (`shortname`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Tabelen cards indeholder en masse forskellige kort som linkes til haves via cards.ID = haves.card
Tabelen editions linker til cards via editions.shortname = cards.Edition.
haves tabellen indeholder en lang række kort, flere fra samme editions.
Jeg vil gerne have alt data fra editions tabellen på de kort der står i haves, DOG, skal jeg kun have hver edition at vide 1 gang.
Er nået så langt som:
SELECT * FROM editions INNER JOIN cards ON editions.shortname = cards.Edition INNER JOIN haves ON cards.ID = haves.card
Den giver mig fint informationer om editions, men giver mig 130 returns (fordi der er 130 haves) fordelt over 3 editions.
Om muligt vil jeg blot have returneret info på disse 3.