まず、newbee の質問についてお詫び申し上げます。私は MySQL を初めて使用します。
簡単な写真コンテスト用に 3 つのテーブルがあります。
登録:
ID
UserName
name
LastName
Email
Mobile
フォトギャラリー:
ID
ImageName
user_id
Status=1
投票:
Photo_ID
Date
Time
Status
特定のタイム スライスで各写真の投票を数える必要があり、同点の場合は、最後の投票を受けた写真を最初に確認する必要があります。
私が思いついたクエリは次のとおりです。
SELECT v.Photo_ID AS "Photo ID",
g.ImageName AS "Photo URL",
r.UserName AS "Username",
r.name AS "Name",
r.LastName AS "Surname",
r.Email AS "E-Mail",
r.Mobile AS "Phone",
v.Date AS "Last Vote Date",
v.Time AS "Last Vote Time",
COUNT(Photo_ID) AS "Total Votes"
FROM photovote v
INNER JOIN photogallery g ON v.Photo_ID = g.ID
INNER JOIN registration r ON g.user_id = r.ID
WHERE v.Status =1
AND g.Status =1
AND v.Date >20130728
AND v.Date <20130805
GROUP BY 1
ORDER BY 10 DESC, 8 DESC, 9 DESC
それにもかかわらず、ORDER BY は正しく機能していません。どんなヒントでも大歓迎です。
ありがとう、アンドレア