如何在mysql中按列值选择表?

时间:2019-04-12 08:32:54

标签: mysql

是否可以按列值选择表格?

例如:

成员

id | user_id | belong_to
 1 |       1 |         a
 2 |       3 |         b
 3 |       1 |         b
 4 |       2 |         c
           .
           .
           .

a_user

id | name
 1 | Cindy
 2 | Jack
 3 | Kenny
   .
   .
   .

b_user

id | name
 1 | Ted
 2 | Janne
 3 | Ben
   .
   .
   .

c_user

id | name
 1 | Owen
 2 | Nancy
 3 | Leon
   .
   .
   .

。   。   

表前缀名称未知,只能从member.belong_to获取。

查询时

SELECT m.id, u.name from member m
LEFT JOIN $(member.belong_to)_user u 
ON m.user_id=u.id

该表将是:

id | name
 1 | Cindy
 2 | Ben
 3 | Ted
 4 | Nancy
   .
   .
   .

是否可以像$(member.belong_to)部分那样做?

1 个答案:

答案 0 :(得分:0)

如果我是u,请使用下面的关系表

成员

idx | user_id | user_name
  1 |       1 |       Ted
  2 |       2 |      John
  3 |       3 |      Jane
  4 |       4 |       Tom
           .
           .
           .

member_relation

idx | master_id |   user_id
  1 |         1 |         2
  2 |         2 |         1
  3 |         3 |         1
  4 |         4 |         1
           .
           .
           .

如果要选择简(id为3)的用户

SELECT a.user_id, b.user_name
FROM member_relation a
LEFT JOIN member b
ON b.user_id=a.user_id
AND a.master_id=3