我正在尝试使用MySQL中的UNSIGNED INT SUM()
。当我加入另一个表时,SIGNED INT变为UNSIGNED INT。
SELECT `weight` FROM `article_vote`
LEFT JOIN `vote` ON `vote`.`id` = `article_vote`.`article_id`
返回:
1
1
1
1
1
1
1
1
1
1
1
但是,SELECT weight FROM vote
会返回:
1
1
1
1
-1
1
1
-1
-1
-1
1
有什么想法吗?
-
修改
这11行是表中的总记录,因此没有任何ORDER或LIMIT。
编辑
表创建:
CREATE TABLE `vote` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL,
`weight` int(11) NOT NULL,
`resource_type` varchar(255) NOT NULL,
`submited_date` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `IDX_5A108564A76ED395` (`user_id`),
CONSTRAINT `vote_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
CREATE TABLE `article_vote` (
`id` int(11) NOT NULL,
`article_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `IDX_8F6C754A62922701` (`anecdote_id`),
CONSTRAINT `article_vote_ibfk_1` FOREIGN KEY (`article_id`) REFERENCES `article` (`id`),
CONSTRAINT `article_vote_ibfk_2` FOREIGN KEY (`id`) REFERENCES `vote` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
答案 0 :(得分:1)
也许负重将被重新排序到稍后的结果集中(在标准MySQL客户端默认应用的LIMIT子句之后)。