我有一张主表和两张表,其中包含有关第一张表的多个dinamyc信息。
第一个名为'items'的表包含主要信息。然后有两个表(评级和索引),其中包含有关视听费用和时间段的某些值的信息。
我想要的: 当我查询这些项目时,我希望结果具有来自评级和索引表的其他列名。
我有这样的代码
SELECT items.*, ratings.val AS rating, indexes.val AS idx
FROM items,ratings,indexes
WHERE items.date>=1349902800000 AND items.date <=1349989199000
AND ratings.period_start <= items.date
AND ratings.period_end > items.date
AND ratings.auditory = 'kids'
AND indexes.period_start <= items.date
AND indexes.period_end > items.date
AND indexes.auditory = 'kids'
ORDER BY indexes.added, ratings.added DESC
表格看起来像这样
项目:
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(200) DEFAULT NULL,
`date` bigint(40) DEFAULT NULL
PRIMARY KEY (`id`)
评分:
`id` bigint(50) NOT NULL AUTO_INCREMENT,
`period_start` bigint(50) DEFAULT NULL,
`period_end` bigint(50) DEFAULT NULL,
`val` float DEFAULT NULL,
`auditory` varchar(200) DEFAULT NULL,
`added` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
除了'添加'字段以外的所有日期都是简单的TIMESTAMPS是BIGINT格式 - 当您执行Date.getTime()时,从AS3中的任何日期起的毫秒数;
那么 - 获得此项目的正确方法是什么?
答案 0 :(得分:0)
我唯一没有看到的是任何单个ITEM与其评级的独特关联......我认为评级表需要一个“ItemID”来链接回项目。按照现在的情况,如果你在给定的时间段内有100个项目,比如3个月......并且只是添加所有评级/评论,但不将这些评级与实际项目相关联,那么你就会被卡住。将ItemID放入并将其添加到WHERE条件中,你应该好好去。