0

1 つのメイン テーブルと、最初のテーブルに関する複数のダイナミクス情報を保持する 2 つのテーブルがあります。

「アイテム」と呼ばれる最初のテーブルには、主要な情報が保持されます。次に、聴覚の数と期間のいくつかの値に関する情報を保持する 2 つのテーブル (評価とインデックス) があります。

私が欲しいもの: これらのアイテムを照会するとき、結果に評価とインデックスのテーブルからの追加の列名が必要です。

私はこのようなコードを持っています

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 の日付からのミリ秒です。

それで、これを達成する正しい方法は何ですか?

4

1 に答える 1

0

私が見ていない唯一のことは、個々のアイテムとその評価との固有の相関関係です...評価テーブルには、アイテムにリンクするための「ItemID」が必要だと思います。現在のところ、3 か月などの特定の期間内に 100 個のアイテムがあり、すべての評価/レビューを追加するだけで、それらの評価を実際のアイテムに関連付けない場合、行き詰まります。ItemID を入力し、それを WHERE 条件に追加すると、準備完了です。

于 2013-08-07T15:35:56.017 に答える