获取特定产品的所有父类别

时间:2017-03-24 10:08:55

标签: php mysql join categories

我无法弄清楚正确的查询,所有现有的答案都与Wordpress相关,我不是在wordpress上,我是从头开始构建它。 我有这张桌子

categories table

我想获得所有家长ID。 如果产品属于"黄色",我想从黄色类别中获取所有父ID,因此从查询"黄色"将是70,68,66,0。

所以我正在旋转所有可能的联接,最好的结果只是当前类别(或所有这些......)

     $sql2 = "SELECT c1.ID, c1.si, c2.si, c2.ID as parent_id 
              FROM v_menu c1 
              LEFT JOIN v_menu c2 
              on (c2.parent = c1.ID) 
              WHERE (c1.ID = :c1)";
      $st2 = $this->db->prepare($sql2);
      $st2->execute(array(':c1' => $row['MID'])); // $row['MID'] => product category
      $res2 = $st2->fetchAll();

仅返回与产品类别匹配的类别。

任何提示,链接,解决方案......都会有很大帮助。

1 个答案:

答案 0 :(得分:0)

如果您的父ID小于Child ID(通常为。

),则这是正确的查询
SELECT t.ID, t.si, @pv := t.parent parent
          from (select * from v_menu order by ID desc) t
          join (select @pv := 70) tmp
          where t.ID = @pv

参考:https://stackoverflow.com/a/24901882/2269385