我担心我对MySQL很新手。我已经做了很多阅读试图解决这个问题,但由于某些原因无法使其发挥作用。
希望你们其中一个人可以帮助一见钟情,应该很简单
我有一个选择评论列表的查询。
$commentquery = "select projects_comments.*, users.user_url, users.display_name
from ".$wpdb->prefix."projects_comments projects_comments
left join ".$wpdb->prefix."users users on
users.ID=projects_comments.userid
where projectid = '$projectid'
order by projects_comments.commentid desc";
用户可以'喜欢/喜欢'这些评论(想想facebook)
我希望能够检查登录用户是否喜欢/喜欢此查询返回的每条评论。
第三个表('comment_loves'未在上面的查询中显示)包含commentid,userid,posttime,并且可以通过变量$ userid访问登录的用户ID。需要针对查询的每个返回行检查第三个表。
总而言之,基本上我需要在此查询中添加以下功能:
对于每个返回的行,必须检查".$wpdb->prefix."
comments_loves表是否存在行WHERE userid = $userid AND commentid = commentid
。如果它存在,那么它将'true'或'1'返回到名为loves的另一列。
我希望这很清楚,如果这对你们很多人来说这是一个简单的问题我会道歉。尽管我尝试过,但我还是无法做到这一点。
谢谢
答案 0 :(得分:2)
现在无法测试,但这样的事情应该有效;添加了另一个左连接以检查您的状况;
SELECT projects_comments.*,
users.user_url,
users.display_name,
comments_loves.userid IS NOT NULL AS loves
FROM projects_comments projects_comments
LEFT JOIN users users
ON users.ID=projects_comments.userid
LEFT JOIN comments_loves
ON projects_comments.commentid = comments_loves.commentid AND
comments_loves.userid = '$userid'
WHERE projectid = '$projectid'
ORDER BY projects_comments.commentid DESC
答案 1 :(得分:1)
这只是你爱情表的外部联接
像
这样的东西select projects_comments.*, users.user_url, users.display_name,
case when comment_loves.commentid is null then 0 else 1 end as loves
from ".$wpdb->prefix."projects_comments projects_comments
left join ".$wpdb->prefix."users users on users.ID=projects_comments.userid
outer join ".$wpdb->prefix."comment_loves
on comment_loves.commentid = projects_comments.commentid
and comment_loves.userid = projects_comments.userid
where projectid = '$projectid'
order by projects_comments.commentid desc
答案 2 :(得分:0)
使用mysql_num_rows检查返回的行数,例如
$DBresult = mysql_query($yourQuery, $dbLink);
$rowCount = mysql_num_rows($DBresult);
if($rowCount > 0)
{
//do stuff
}