MySQL显示他是其父母的当前用户+用户的记录

时间:2014-04-21 11:38:48

标签: mysql

如何编写MySQL代码以获取当前登录用户的记录,最重要的是,他是父母的用户?

    user_id  |  username  |  parent_user_id
    ---------+------------+-----------------
    1        |  alvin     |  NULL
    2        |  gary      |  1
    3        |  tom       |  1

我们登录到用户alvin并拥有基本的MySQL语句...(伪代码) 这将选择属于Alvin的订单。

    SELECT *
    FROM orders
    WHERE user_id = $_SESSION['loggedUser']

我如何编写同时显示来自Gary和Tom的订单的Statement(由于用户表中定义的父子关系?或者缺少更好的术语,如团队领导/团队限制观看)。

*还想添加订单表只存储信息和单个用户名字段来存储订单所属的用户

非常感谢!

3 个答案:

答案 0 :(得分:1)

试试这个:

SELECT *
FROM orders
WHERE user_id = $_SESSION['loggedUser']
OR 
user_id IN (SELECT user_id 
            FROM users
            WHERE parent_user_id= $_SESSION['loggedUser'])

答案 1 :(得分:1)

试试这个

SELECT child.user_id,child.username
FROM orders main
  left join orders child on child .parent_user_id=main.user_id  
WHERE main.user_id = $_SESSION['loggedUser']

答案 2 :(得分:0)

这不必复杂(对于单层次的层次结构)

SELECT *
    FROM orders
    WHERE user_id = $_SESSION['loggedUser']
    OR parent_user_id = $_SESSION['loggedUser']