【发布时间】:2011-11-29 10:28:38
【问题描述】:
我有三张桌子:
-
$sTable= 歌曲表(songid、mp3link、艺术品、useruploadid 等) -
$sTable2= 项目表,其中包含链接的歌曲(项目 ID、歌曲 ID、项目名称等) -
$sTable3= 歌曲评分表(歌曲 ID、用户 ID、评分)
所有这些数据都输出到 JSON 数组并显示在我的应用程序的表格中,以提供歌曲列表,并结合项目和收视率数据。
我想要做的是检查“登录用户”是否对特定歌曲进行了投票,以便我可以将“投票”类添加到返回数据的父元素。
我希望以最持久的最佳方式执行此操作,我猜这将是返回一个布尔值(1 或 0),其中 1 被投票,否则返回 0。
然后我可以使用 javascript 来应用类客户端。
“登录的用户 ID”作为 $loggedin_ID 存储在我的 PHP 脚本中,因此我需要简单地对照 $sTable3 的“用户 ID”列检查该变量以获取给定的歌曲 ID 并返回一个新列(我想使用AS) 如果该歌曲有匹配的条目,则结果为 1,如果没有,则结果为 0。
我将如何修改我的查询以添加它?
以上只是我的想法,可能确实有更好/更有效的方法。如果是这样,请不要犹豫,提供您认为可能是实现此功能的更好解决方案。
以下是我当前的查询。谢谢。
$sQuery = "SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."
FROM $sTable b
LEFT JOIN (
SELECT COUNT(*) AS projects_count, a.songs_id
FROM $sTable2 a
GROUP BY a.songs_id
) bb ON bb.songs_id = b.songsID
LEFT JOIN (
SELECT AVG(rating) AS rating, COUNT(rating) AS ratings_count,c.songid
FROM $sTable3 c
GROUP BY c.songid
) bbb ON bbb.songid = b.songsID
【问题讨论】:
标签: mysql