gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 04:33:23 26 4
gpt4 key购买 nike

假设我有一个名为 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_by 的值是创建该记录的 user_id。现在,我想做一个查询,结果是一个特定的行和添加的列让我们说 user_created_by_name 这是 user_iduser_name 来自 用户创建者。假设我们想要获取 “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 |
+----------+--------------+-------------------+------------------------+

最佳答案

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

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

关于mysql - 选择具有附加列的特定行,其值来自一个表中的另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52390773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com