如何在MySQL查询中添加对数据的检查?
我有三张桌子:如何在MySQL查询中添加对数据的检查?,mysql,Mysql,我有三张桌子: $sTable=歌曲表(songid、mp3link、artwork、useruploadid等) $sTable2=项目表,其中包含链接到它们的歌曲(projectid、songid、项目名称等) $sTable3=歌曲分级表(songid、userid、分级) 所有这些数据都被输出到一个JSON数组中,并显示在我的应用程序中的一个表中,以提供歌曲列表,以及项目和评级数据 我希望能够做的是检查“登录用户”是否对特定歌曲进行了投票,以便我可以向返回数据的父元素添加“投票”类
=歌曲表(songid、mp3link、artwork、useruploadid等)$sTable
=项目表,其中包含链接到它们的歌曲(projectid、songid、项目名称等)$sTable2
=歌曲分级表(songid、userid、分级)$sTable3
JSON
数组中,并显示在我的应用程序中的一个表中,以提供歌曲列表,以及项目和评级数据
我希望能够做的是检查“登录用户”是否对特定歌曲进行了投票,以便我可以向返回数据的父元素添加“投票”类
我想用一种最持久的最佳方式来实现这一点,我猜是返回一个布尔值(1或0),1被投票,0被返回
然后,我可以使用javascript应用类客户端
“登录用户id”作为$loggedin_id存储在我的PHP脚本中,因此我需要简单地针对给定songid的$sTable3列检查此变量,并返回一个新列(我可以想象使用as),如果该songid有匹配项,则结果为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
也许你正在寻找这样的东西:
select s.songid, s.userid,
case when exists
(
select songid
from sTable3
where songid = $songid
) Then 'Voted'
else
(
'Not Voted'
)
end
as 'Voted or Not'
from sTable3 s
where s.userid = $userid
也许你正在寻找这样的东西:
select s.songid, s.userid,
case when exists
(
select songid
from sTable3
where songid = $songid
) Then 'Voted'
else
(
'Not Voted'
)
end
as 'Voted or Not'
from sTable3 s
where s.userid = $userid
感谢MGA,这看起来是正确的方法,但我很难将其集成到查询中,而不会出现别名/语法错误。可能是因为我对MySQL相对缺乏经验。正如我不想问的那样,您是否介意更具体一点,如何将其与我当前的查询集成?这对像我这样的新手来说是非常有帮助的。再加一点拨弄,我就到了那里。。。在这个过程中,我学到了一两件事。非常感谢一如既往的MGA。你是个明星。:-)@gordyr,我真的很抱歉,但实际上我无法得到,你想把它集成到什么中???您在问题中发布的问题我不理解,但如果您能更具体一些,我将很乐意提供帮助。谢谢MGA,很好,我已经成功了。它只是花了一些玩表别名和其他一些小更正。除此之外,你的回答非常有效。谢谢。:)感谢MGA,这看起来是正确的方法,但我很难将其集成到查询中,而不会出现别名/语法错误。可能是因为我对MySQL相对缺乏经验。正如我不想问的那样,您是否介意更具体一点,如何将其与我当前的查询集成?这对像我这样的新手来说是非常有帮助的。再加一点拨弄,我就到了那里。。。在这个过程中,我学到了一两件事。非常感谢一如既往的MGA。你是个明星。:-)@gordyr,我真的很抱歉,但实际上我无法得到,你想把它集成到什么中???您在问题中发布的问题我不理解,但如果您能更具体一些,我将很乐意提供帮助。谢谢MGA,很好,我已经成功了。它只是花了一些玩表别名和其他一些小更正。除此之外,你的回答非常有效。谢谢。:)