对于我的网站,我有一个图片库,我希望用户能够按标题asc,标题desc和情感对图库进行排序。这个网站是针对痴呆症患者的,所以我正在记录一个图像的正面或负面情绪反应。
我有标题asc和desc查询工作,但我正在努力与最终查询进行情感排序。
我的数据库具有以下设置:
images:id,title,... etc //存储图像和属性
imageaccess:imageID,userID //存储有权查看图片的人
imageemotion:imageID,userID,happyCount,sadCount //存储图像引发的情绪
到目前为止,这是我提出的查询,但它不起作用:
SELECT * FROM images WHERE EXISTS (SELECT * FROM imageaccess WHERE imageaccess.imageID=images.id AND imageaccess.userID='$currentUserID') FULL OUTTER JOIN imageemotions ON imageemotions.imageID=images.id ORDER BY imageemotions.happyCount DESC
基本上我需要一个查询,它将返回用户有权访问的所有图像,并按' happyCount'对结果进行排序。 目前,图片只会添加到' imageemotion'表格在用户注册了happyCount或sadCount时,如果它会使查询更容易,我可以更新网站,以便每个图像都包含一个快乐和悲伤的计数为0。
真的希望这是有道理的我知道它相当复杂......任何帮助都会非常感激!
非常感谢:)
答案 0 :(得分:0)
请尝试以下查询:
SELECT
images.*,
IFNULL(imageemotions.happyCount, 0) AS happyCount,
IFNULL(imageemotions.sadCount, 0) AS sadCount
FROM
images
INNER JOIN imageaccess
ON imageaccess.imageID = images.id
LEFT OUTER JOIN imageemotions
ON imageemotions.imageID = images.id
WHERE
imageaccess.userID = '$currentUserID'
ORDER BY
IFNULL(imageemotions.happyCount, 0) DESC