我目前正在使用以下两个查询:
$get_forum=$this->prepare("SELECT * FROM ".TBL_PREFIX."forums WHERE id=:forum_id");
$get_forum->bindParam(":forum_id", $forum_id);
$get_forum->execute();
$forum=$get_forum->fetchAll();
$get_parent=$this->prepare("SELECT * FROM ".TBL_PREFIX."forums WHERE id=:parent_id");
$get_parent->bindParam(":parent_id", $forum["parent_id"]);
$get_parent->execute();
我想将它们组合成一个类似于此的查询,它使用绑定的参数或数据库中字段的值。在从数据库中获取论坛数据之前,我不知道父ID是什么。
父论坛的parent_id为-1,而子论坛的parent_id设置为父ID的id。
$get_forums=$this->prepare("SELECT * FROM ".TBL_PREFIX."forums WHERE id=:forum_id OR forum_id=parent_id");
$get_forums->bindParam(":forum_id", $forum_id);
$get_forums->execute();
是否可以在查询本身内部使用字段值将其与其他值进行比较?
答案 0 :(得分:1)
您可以进行自我加入:
SELECT *
FROM forums parent JOIN forums child ON parent.forum_id = child.parent_id
WHERE parent.id = ? OR child.id = ?
答案 1 :(得分:1)
试试这个
$get_forum=$this->prepare("SELECT * FROM ".TBL_PREFIX."forums WHERE id=? OR id=?");
$get_forum->bindParam(array($forum_id,$forum["parent_id"]));
$get_forum->execute();