在下面的示例中,为了说明我的问题,在要显示在网格上的行中,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 一样)。
在客户端,我将使用渲染函数根据颜色值动态执行此操作。
执行此操作的最佳方法是什么?
我需要第二个查询来获取对应于每一行中每个用户的颜色吗?
最佳答案
你可以使用连接
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';
关于mysql - 子查询。获取每个用户的附加条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41187965/