Мой подписанный INT преобразуется в неподписанный, когда я присоединяюсь - PullRequest
1 голос
/ 27 июня 2011

Я пытаюсь SUM() с неподписанным INT в MySQL. Когда я присоединяюсь к другой таблице, подписанный INT становится неподписанным 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

Есть идеи?

-

EDIT

Эти 11 строк являются полными записями в таблице, поэтому здесь нет ORDER или LIMIT.


РЕДАКТИРОВАТЬ

TABLE 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;

1 Ответ

1 голос
/ 27 июня 2011

Возможно, отрицательные веса будут переупорядочены для последующего набора результатов (после предложения LIMIT, которое стандартный клиент MySQL применяет по умолчанию).

...