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

ここで、ユーザーID = 1を使用してレコードを照会すると、ID2および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 に答える