需要有关 sql 查询的帮助,该查询根据用户选择对图片库进行排序
Need assistance with an sql query that sorts image gallery based on user choice
我的网站有一个图片库,我希望用户能够按标题升序、标题降序和情感对图片库进行排序。这个网站是为患有痴呆症的人准备的,所以我记录了一张图片的积极或消极的情绪反应。
我的 title 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
基本上我需要一个查询,该查询将 return 用户有权访问的所有图像并按 'happyCount' 对结果进行排序。
当前,只有当用户注册了 happyCount 或 sadCount 时,才会将图像添加到 'imageemotion' table,但是如果这样可以使查询更容易,我可以更新网站,以便每张图像都包含快乐和悲伤数为 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
我的网站有一个图片库,我希望用户能够按标题升序、标题降序和情感对图片库进行排序。这个网站是为患有痴呆症的人准备的,所以我记录了一张图片的积极或消极的情绪反应。
我的 title 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
基本上我需要一个查询,该查询将 return 用户有权访问的所有图像并按 'happyCount' 对结果进行排序。 当前,只有当用户注册了 happyCount 或 sadCount 时,才会将图像添加到 'imageemotion' table,但是如果这样可以使查询更容易,我可以更新网站,以便每张图像都包含快乐和悲伤数为 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