以下是我的第一个查询,我用它来获取发布数据和创建者数据,这些数据是从post和account_data_base表格以post.date_created顺序创建的。
SELECT post.*, account_data_base.* FROM post
JOIN account_data_base ON post.creator_id =
account_data_base.user_uid ORDER BY post.date_created DESC
这是我在运行1st查询后在php中的第二个查询,我用它来检查帖子创建者是否喜欢他/她的帖子。
$stmt = $conn->prepare("SELECT EXISTS(SELECT * FROM like
WHERE post_id = ? and userLike_Id = ?)");
$stmt->bind_param("ss", $postId, $account_data_base_id);
正如您所见,$ postId和$ account_data_base_id是我从第一个查询中获得的值。我想知道有没有一种方法可以同时组合2个查询,我可以获得发布数据,创建者数据以及我的第二个查询来检查是否喜欢?
更新:这是我尝试的但是类似的检查没有显示准确的信息:
SELECT post.*, account_data_base.*,
EXISTS(SELECt * FROM like WHERE like.post_id = post.id and like.userLike_Id = account_data_base.user_uid) FROM post
JOIN account_data_base ON post.creator_id =
account_data_base.user_uid ORDER BY post.date_created DESC
答案 0 :(得分:0)
您可以在SELECT子句中将EXISTS查询用作子查询:
SELECT post.*, a.*, EXISTS (
SELECT * FROM `like` l
WHERE l.post_id = p.id
and l.userLike_Id = a.id
) as likeExists
FROM post p
JOIN account_data_base a ON p.creator_id = a.user_uid
ORDER BY p.date_created DESC
这将添加likeExists
或1
字段0
。而且您不需要为每个帖子运行一次查询。