选择一个具有附加列的特定行,该列的值来自一个表中的另一列

乔恩监测

假设我有一个名为表users由列:user_iduser_nameuser_created_by

+------------------+----------------------+-------------------+
|    user_id       +      user_name       +  user_created_by  +
+------------------+----------------------+-------------------+
|        1         |        John          |         1         |
|        2         |        Ann           |         1         |
|        3         |        Paul          |         2         |
|        4         |        King          |         2         |
|        5         |        Dirk          |         3         |
+------------------+----------------------+-------------------+

user_created_byuser_id创建该记录的人。现在,我要查询一个结果,该查询将在特定行中添加一列,让我们说user_created_by_name这是user_nameuser_iduser_created_by假设我们要获取“ Paul”的记录以及创建者(名称)(临时新列)。为了便于理解,这是我的预期结果:

+----------+--------------+-------------------+------------------------+
| user_id  |   user_name  |  user_created_by  |  user_created_by_name  |
+----------+--------------+-------------------+------------------------+
|    3     |     Paul     |        2          |          Ann           |
+----------+--------------+-------------------+------------------------+

这是我使用codeigniter的查询:

$query=$this->db->query("SELECT *, 
                           (SELECT user_name FROM users WHERE user_id = user_created_by) 
                              AS "user_created_by_name" FROM users WHERE user_id=3);

但是我的结果是:

+----------+--------------+-------------------+------------------------+
| user_id  |   user_name  |  user_created_by  |  user_created_by_name  |
+----------+--------------+-------------------+------------------------+
|    3     |     Paul     |        2          |         NULL           |
+----------+--------------+-------------------+------------------------+
scaisEdge

您可以使用自我联接(两次联接同一表),并使用别名将表作为不同的数据集

SELECT a.user_id, a.user_name, a.user_created_by, b.user_name as user_created_by_name
from users a 
inner join user b on a.user_created_by = b.user_id 
where a.user_id  = 3 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从表中选择所有行,除了具有相同 id 的另一个表中的行在另一列中具有特定值

如何选择一个具有其他列最大值的列,以及另一个表中该列的所有对应行?

为大表中的一个特定列选择具有唯一值的行

SQL选择在另一列中具有至少一个特定值的所有非唯一行

在具有来自另一个表的条件的列中插入值的函数

具有某一列的特定值并排除另一列的一个值的数据子集

从一个表中的一列中为每一行打印出值列表,在另一表中具有重叠的间隔

SQL:在某些列中选择具有值的行,并且该值不包含在另一个表中

选择行中的最后一个值并将其放在另一列中

如果值在一个间隔之间,请在另一列的同一行上选择该值

如何根据即使只有一个重复项在另一列中具有特定值来删除列的所有重复行

如何选择值出现在另一个表的几列中的任何一列中的行?

根据来自另一个表的多列在一个表中创建一列[python]

从文件中读取一列,然后附加另一个文件的特定列

如何将列中具有特定值的行复制到另一个工作表?

TSQL - 在表中查找一列中有多个记录,并且在另一列中至少有一个特定的值出现

如何获取在另一个表的列值中没有该列值的行

选择一个与另一列具有相同属性的列

熊猫会在一个数据框中删除与另一个数据框的一列中的行具有共同值的行

如何根据引用表中是否包含来自不同列的另一个 ID 的至少一个实例来选择该 ID 的所有实例?

访问:具有来自另一个表的值的UPDATE列

计算另一个表中另一列的列值

选择某一列中只有一个值的行

根据另一列和另一个表中的值创建一个新列

如何遍历特定列中的行,找到一个值,并在找到该值时将 count = 1 添加到另一列?

从python中的另一列groupby之后的列中选择一个值

从一列中选择一个值将过滤另一列

使用 SQL QUERY 在另一个现有表中附加特定列

从一个列中连接多个值,该列从另一表中选择