0

我在我的数据库中查询一个带有连接相关表的表示例:我想显示所有样式并加入该样式的混合,但如果第一个样式没有混合相关,则显示 0 个混合。

这是我的 2 张桌子:

首先是混合表

CREATE TABLE `mixes` (
  `mixes_id` int(11) NOT NULL AUTO_INCREMENT,
  `datePublic` date DEFAULT NULL ,
  `timeLenght` time DEFAULT NULL ,
  `Title` varchar(255) DEFAULT 'No-Title-Yet' ,
  `dwnlSize` varchar(45) DEFAULT '? MegaBytes',
  `Quality` char(10) DEFAULT '? kbits/s',
  `style_id` int(3) unsigned zerofill DEFAULT NULL,
  `collection_id` int(3) unsigned zerofill DEFAULT '001',
  `lienDwnld` varchar(255) DEFAULT NULL,
  `VidLink` varchar(255) DEFAULT NULL,
  `ArtisteFeat` varchar(255) DEFAULT NULL,
  `slugMixTitle` varchar(100) DEFAULT NULL,
  `cache` enum('0','1') DEFAULT NULL,
  PRIMARY KEY (`mixes_id`),
  UNIQUE KEY `Title_UNIQUE` (`Title`),
  UNIQUE KEY `lienDwnld_UNIQUE` (`lienDwnld`),
  UNIQUE KEY `slugMixTitle` (`slugMixTitle`),
  KEY `style_index` (`style_id`),
  KEY `collection_index` (`collection_id`)
) 
ENGINE=InnoDB  DEFAULT CHARSET=latin1 ;

ALTER TABLE `mixes`
  ADD CONSTRAINT `collectionMustExist` FOREIGN KEY (`collection_id`) REFERENCES `collection` (`collection_id`),
  ADD CONSTRAINT `styleMustExist` FOREIGN KEY (`style_id`) REFERENCES `style` (`style_id`);

然后是样式表

CREATE TABLE `style` (
  `style_id` int(3) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `imgMixCat` varchar(255) DEFAULT NULL,
  `nameMixCat` varchar(45) DEFAULT NULL,
  `descMixCat` varchar(255) DEFAULT NULL,
  `slugMixCat` varchar(45) DEFAULT NULL,
  `hideMixCat` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`style_id`),
  UNIQUE KEY `nameMixCat_UNIQUE` (`nameMixCat`),
  UNIQUE KEY `slugMixCat` (`slugMixCat`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;

这是我当前的查询:

SELECT 
  count(style.style_id) AS count,
  nameMixCat,
  style.style_id,
  descMixCat,
  hideMixCat,
  slugMixCat,
  imgMixCat
FROM style as style
LEFT JOIN mixes as mixes ON style.style_id = mixes.style_id
GROUP BY style.style_id
ORDER BY style.style_id ASC

那么当没有与风格相关的混音时,如何返回 1 呢?

4

0 回答 0