Предположим, у меня есть таблица с именем users
, состоящая из столбцов: user_id
, user_name
, user_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_name
из user_id
из user_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 |
+----------+--------------+-------------------+------------------------+