Как отобразить имя вместо идентификатора, если записи находятся в одной таблице?

Я использую CodeIgniter. У меня есть таблица сотрудников и записи

id |firstname | lastname | mobileno   | created_by
2 |mnb       | nbgfv    | 1452145625 | 1
3 |jhg       | uhgf     | 1452365478 | 2
4 |poi       | ijuy     | 1458745632 | 2
5 |tgf       | tgfd     | 1458745254 | 2
6 |wer       | qwes     | 1523654512 | 2

Теперь моя проблема находится в столбце created_by, Когда я показываю запись любого значения идентификатора, то я получаю вывод, как

    id |firstname | lastname | mobileno   | created_by
3 |jhg       | uhgf     | 1452365478 | 2

Но мой ожидаемый результат

id |firstname | lastname | mobileno   | created_by
3 |jhg       | uhgf     | 1452365478 | mnb nbgfv

Я должен отобразить имя created_by

Я пробовал только этот запрос.

   $get_single_emp_record = array('id' => 3);
$this->db->where($get_single_emp_record);
$query = $this->db->get('tbl_employee');
$result = $query->row();
if($result)
{
return $result;
}
else
{
return 0;
}

0

Решение

У меня есть подсказка (возможно, это может дать решение вашей проблемы).
Попробуйте запрос так:

SELECT
t1.id , t1.firstname , t1.lastname ,t1.mobileno,
CONCAT(t2.firstname ," ",t2.lastname ) AS createby
FROM tbl_employee AS t1
JOIN tbl_employee AS t2 ON t2.id = t1.created_by
WHERE t1.id = '3'

С помощью вышеуказанного запроса вам не нужно создавать временную таблицу или другие дополнительные таблицы.
Я проверял это. >>>
http://sqlfiddle.com/#!9/e693cf/2/0

Надеюсь, может помочь вам. Спасибо

0

Другие решения

возможно, вам придется создать еще одну таблицу tbl_creator который будет иметь id, creator_name тогда в вашем запросе вы выполните операцию соединения

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector