子查询。获得每个用户的其他标准

时间:2016-12-16 15:50:53

标签: mysql sql subquery

在下面的示例中,为了说明我的问题,在网格上显示的行上,Marge可以看到第1行,Bart第2行和Homer第1行和第2行。

如果用户是Marge和Marge在users_list上,她可以看到第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')

这很有效。

我的问题是我还需要从客户端的颜色列中获取值,其目的如下:

在示例中,Marge和Homer可以看到第1行。

但是如果用户是Marge,则行将以红色突出显示;如果用户是荷马行将以蓝色突出显示。

(每个用户可以在不同的行上使用与Homer不同的颜色)。

在客户端,我将使用渲染功能根据颜色值动态执行此操作。

这样做的最佳方式是什么?

我需要第二个查询来获取与每行中每个用户对应的颜色吗?

1 个答案:

答案 0 :(得分:1)

您可以使用联接

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';