2011-06-26 46 views
1

我試圖在MySQL中使用UNSIGNED INT來創建SUM()。當我加入另一個表時,SIGNED INT成爲UNSIGNED INT。當我做一個LEFT JOIN時,我的SIGNED INT被鑄造成UNSIGNED

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行是在表中的總記錄,所以不會有任何命令或限制。


編輯

表CREATE:

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

你能告訴我們這些2個查詢的結果:'SELECT count(weight)FROM vote'和'SELECT count(weight)FROM article_vote LEFT JOIN vote.id = article_vote.article_id'? – gaRex

+0

兩者都返回11,其中我的表中的記錄總數,我知道你要來的地方:)但這是完整的數據。 – JohnT

+0

這兩個表的結構是什麼? –

回答

1

也許負權重被重新排序後進來的結果集(標準MySQL客戶端應用默認情況下該限制條款後) 。

+0

返回的是全表,11條記錄 – JohnT