mysql - 子查询。获取每个用户的附加条件

标签 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 一样)。

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

执行此操作的最佳方法是什么?

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

最佳答案

你可以使用连接

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/

相关文章:

PHP 和 MySQL - Select 语句未返回正确的顺序

php - 当我添加一列时,它说 "Column count doesn' t 匹配第 1 行的值计数”

mysql - 使用日期范围内的星期几填充 SQL 列

mysql - 错误代码 : 1442. 无法更新存储函数/触发器中的表 'students'

mysql - 合并多行并计入另一个表中的新列

java - 我可以在 Solr 查询中返回多个文档字段的值吗?

sql - month vs month查询(同表数据)

PHP/MySQL - 列出谁招募了谁

sql - Access 查询中的多表 NOT EQUAL

MySQL 分组如果表中不存在则强制返回空值