2011-10-06 111 views
0
CREATE TABLE IF NOT EXISTS `carslibrary` (
    `CarID` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `CarName` varchar(255) NOT NULL, 
    PRIMARY KEY (`CarID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 

CREATE TABLE IF NOT EXISTS `colorslibrary` (
    `ColorID` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `ColorName` varchar(255) NOT NULL, 
    PRIMARY KEY (`ColorID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; 


CREATE TABLE IF NOT EXISTS `facerecord` (
    `carslibrary_ID` int(10) unsigned NOT NULL, 
    `colorslibrary_ID` int(11) unsigned NOT NULL, 
    KEY `carslibrary_ID` (`carslibrary_ID`), 
    KEY `colorslibrary_ID` (`colorslibrary_ID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

我想選擇例如carsLibrary的所有記錄和他們的比賽汽車顏色選擇屬性記錄

carID carName carColor 
1  toyota green 
2  kia  green 
3  ford  blue 

回答

1

我會用幾個JOIN S:

SELECT `CarID`, `CarName`, `ColorName` AS CarColor FROM 
    (`carslibrary` LEFT JOIN `facerecord` ON `CarID`=`carslibrary_id`) 
    LEFT JOIN `colorslibrary` ON `colorslibrary_id`=`ColorID`