在下面的示例中,为了说明我的问题,在要在网格上显示的行上,Marge可以看到行1、Bart行2以及Homer行1和2。
如果用户是Marge,Marge在用户列表中,她可以看到第1行:

 //tab_rows

 id  rows   user_ref
 __  ____   ________

  1   row1    1
  2   row2    2

.
 //tab_users

  id_users   user_ref   users_list    color
  ________   _______   __________   _______

    1          1         Marge        Red
    2          1         Homer        Blue
    3          2         Bart         Black
    4          2         Homer        Green

.
 SELECT rows FROM tab_rows
 WHERE user_ref IN (SELECT user_ref FROM tab_users
                    WHERE users_list = 'Marge')

这很管用。
我的问题是,我还需要从客户端的color列中获取值,目的如下:
在本例中,Marge和Homer都可以看到第1行。
但是,如果用户是Marge,则行将以红色亮起;如果用户是Homer,则行将以蓝色亮起。
(每个用户在不同的行上可以有不同的颜色,就像荷马一样)。
在客户端,我将使用一个渲染函数根据颜色的值动态地执行此操作。
最好的方法是什么?
我需要第二个查询来获取每行中每个用户对应的颜色?

最佳答案

你可以加入

select a.rows, b.color
from tab_rows as a
inner join  tab_users as  b on a.user_ref = b.user_ref
where b.userlist = 'Marge';

09-25 21:28