如何编写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(由于用户表中定义的父子关系?或者缺少更好的术语,如团队领导/团队限制观看)。
*还想添加订单表只存储信息和单个用户名字段来存储订单所属的用户
非常感谢!
答案 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']