我有兩個表非隱式連接,返回時正確的連接是空
contactGroups cg
和contactGroupLink cgl
。
CREATE TABLE `contactgroups` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`account` int(11) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`description` text,
`dateCreated` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
CREATE TABLE `contactgrouplink` (
`groupId` int(11) NOT NULL,
`ContactId` int(11) NOT NULL,
PRIMARY KEY (`groupId`,`ContactId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
如果接觸是一組隨後的條目被放入cgl
表與contactId
和groupId
英寸
這一切工作正常。
我想做一個查詢,獲取cg
表中所有組的所有信息,其中account = 1
。
作爲此查詢的一部分,我還希望添加一個稱爲數字的額外行,該數字包含該組的cgl
表中的條目數。
我使用
SELECT
cg.id AS id,
NAME,
description,
dateCreated,
COUNT(*) AS number
FROM
contactgroups cg,
contactgrouplink cgl
WHERE
cg.account = 1
AND
cg.id = cgl.groupId
GROUP BY
cg.id
其中一期工程完美只要至少一個接觸存在一組。 否則該組不返回。
必須對此查詢做些什麼才能使其返回所有組?
@Hailwood沒有這樣的匹配記錄:如果你想0而不是1,你需要'COUNT(CGL .groupId)'而不是'COUNT(*)'。原因是'COUNT(*)'計算結果集中的行數。 'COUNT(x)'只計算其中x不爲NULL的那些行。查看完整查詢的更新。 – 2011-03-08 20:08:55
opps,我的不好; D歡呼 – Hailwood 2011-03-08 20:10:41