0

我在 MySQL 中有一张表,结构如下

user_mst
----------------
user_id
user_name
left_id        (fk to user_mst->user_id)
right_id       (fk to user_mst->user_id)

现在我想以假设的方式选择记录,

user_id = 1 
left_id = 2
right_id = 3

现在,如果我使用 User ID = 1 查询记录,它应该打印 ID 为 2 和 3 的用户名。

抱歉问题更新,我想打印 left_id 和 right_id 的 2 条单独记录。

那么我该怎么做呢?

4

2 回答 2

1
SELECT
u2.*
FROM users u1
JOIN users u2 ON u2.user_id IN (u1.left_id, u1.right_id)
WHERE u1.user_id  = 1 
于 2012-08-01T01:00:41.637 回答
0

像这样的东西可能会起作用

SELECT user_name, u1.user_name as LeftUser, u2.user_name as RightUser
FROM user_mst u0
LEFT OUTER JOIN user_mst u1 on u1.user_id = u0.left_id
LEFT OUTER JOIN user_mst u2 on u2.user_id = u0.right_id
WHERE user_id = ?
于 2012-08-01T00:58:46.993 回答