我试图选择行并向此选择添加一个布尔值,以测试记录在另一个表中的多对多关系的存在。
这是我的代码:
$q = $this->dao->prepare('
SELECT wishlists.id, wishlists.title, wishlists.comment, wishlists.date, users.name, users.username
FROM wishlists
LEFT JOIN users ON wishlists.user = users.id
WHERE users.username = :username
ORDER BY wishlists.date DESC
');
$q->bindValue(':username', $user);
$q->execute();
这将返回一个包含我所有字段的表。我想使用这种子查询在此表中添加一列:
SELECT EXISTS(SELECT 1 FROM wishlists_following WHERE wishlist_id = wishlists.id AND user_id = :current_user_id)
其中current_user_id是访问者的ID,$ user是当前用户的个人资料页面。
最好的方法是什么?
目的是获取有关愿望清单的所有信息,并了解当前用户是否正在关注此愿望清单(以便为返回的每个愿望清单显示跟随按钮)。
最佳答案
当您在心愿单和用户之间使用LEFT JOIN时,如果心愿单没有相关用户,则用户名和用户列将得到NULL值。
因此,我认为您不需要其他查询:只需要在获得第一个查询的结果后测试users.name列的无效性即可。