今天发现一个sql查询的问题

SELECT m.id,count(*) as qq FROM xmx_users m LEFT JOIN xmx_users n on m.id = n.recommend_id GROUP BY id 

这条sql ,查询出来的结果即使没有符合条件的也显示数量为1。

表:

CREATE TABLE IF NOT EXISTS `xmx_users ` (

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `recommend_id` int(10) unsigned NOT NULL DEFAULT '0',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

测试数据:

INSERT INTO `xmx_users ` (`id`,`recommend_id`) VALUES

(2, 0),

(3, 2),

(5,  2),

(6,  0),

(7, 5),

(8,  0),

(9, 0),

(10, 0),

(11,5),

(13,  7);

zllo
浏览 2264回答 3
3回答

仙士可

你的语句根本没条件啊,返回数据不是很正常么,如果你说join的是条件的话,那么left join的意思就是说就算没条件,我也可以返回主查询的数据啊

zllo

有没有解决的方法
打开App,查看更多内容
随时随地看视频慕课网APP