MariaDB:多个连接和在TINYINT列中搜索1的where子句不起作用

时间:2016-02-11 06:40:54

标签: mysql mariadb tinyint

我有一个名为personbook以及imagebookhit的表格。

人有idname,图书有idowner_idinfo,图片有id列,{{ 1}},owner_idurl这是一个TINYINT(在数据库中,一半行是thumbnail s和0 s。)顺便说一句,图像列存储这本书的封面图片有两个版本:大一和缩略图。表1存储从数据库中检索到图书的时间,并且具有列bookhit

所以我尝试了多个INNER JOIN来检索最受欢迎的书籍的所有缩略图。 SQL查询如下:

hits

这不起作用,即使SELECT `imagehit`.`hits`, `person`.`name`, `book`.`info`, `image`.`url`, `image`.`thumbnail` FROM `imagehit` INNER JOIN `person` ON `person`.`id`=`book`.`owner_id` INNER JOIN `image` ON `image`.`owner_id`=`book`.`id` ORDER BY `imagehit`.`hits` DESC WHERE `image`.`thumbnail`=1 LIMIT 10; 1中有半行imagethumbnail。如果我更改以下行:

WHERE `image`.`thumbnail`=1

WHERE `image`.`thumbnail`=0

确实有效。好吧,我去了image表,做了一个简单的查询,如下所示:

SELECT * FROM `image` WHERE `image`.`thumbnail`=0;

并为我提供了存储在表格中的行。但是当我在image中浏览phpMyAdmin表时,我看到表中存有1个。 :(

为什么会这样?提前谢谢你。

表定义:

CREATE TABLE `image` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `owner_id` int(11) NOT NULL,
 `thumbnail` tinyint(1) NOT NULL,
 `url` varchar(255) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `image_url` (`url`),
 KEY `image_owner_id` (`owner_id`),
 CONSTRAINT `image_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `book` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1450 DEFAULT CHARSET=utf8

CREATE TABLE `person` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) NOT NULL,
 `url` varchar(60) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `person_url` (`url`),
) ENGINE=InnoDB AUTO_INCREMENT=6287 DEFAULT CHARSET=utf8

CREATE TABLE `book` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `owner_id` int(11) NOT NULL,
 `book` varchar(3000) NOT NULL,
 `info` varchar(3000) NOT NULL,
 `url` varchar(60) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `book_url` (`url`),
 KEY `book_owner_id` (`owner_id`),
 CONSTRAINT `book_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `person` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=725 DEFAULT CHARSET=utf8

CREATE TABLE `imagehit` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `owner_id` int(11) NOT NULL,
 `person_id` int(11) NOT NULL,
 `hits` int(11) NOT NULL,
 PRIMARY KEY (`id`),
 KEY `imagehit_person_id` (`person_id`),
 KEY `imagehit_owner_id` (`owner_id`),
 KEY `hits` (`hits`),
 CONSTRAINT `imagehit_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `image` (`id`),
 CONSTRAINT `imagehit_ibfk_2` FOREIGN KEY (`person_id`) REFERENCES `person` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=725 DEFAULT CHARSET=utf8

证明我不是疯了: enter image description here

我使用Peewee插入数据,当我创建了我设置thumbnail=True的行(如果图像是缩略图)和thumbnail=False(如果不是)。列thumbnail是Peewee中的字段BooleanField

0 个答案:

没有答案