SQL |получить запрос из 2 таблицы с условием - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть 2 таблицы, я хочу отобразить всех пользователей в списке на моем веб-сайте и показать его последние данные для входа в систему из таблицы tbl_login_details, но получить последние данные для входа в систему для этого пользователя

1 - отобразить всеМой пользователь из таблицы - tbl_user

2 - отобразить ПОСЛЕДНЮЮ регистрационную информацию для всех пользователей, поэтому для данных tbl_login_details необходимо указать ЗАКАЗ, а затем взять ЛИМИТ

---------tbl_user-------
id    user_id   user_name 
1      5         mohammed
2      7          ahmed  

-------------tbl_login_details----------

  id       user_id    last_activity
  1         7          2016-5-2
  2         7          2017-4-2
  3         7          20-17-8-4

Моя работа

$this->db->select('m.*,u.*'); 
$this->db->from('tbl_user m');
//$this->db->where("m.user_id", $id);
$this->db->join('tbl_login_details u ', 'u.user_id = m.user_id');
$where = 'm.user_id = u.user_id OR u.user_id = m.user_id  OR m.user_id=" "  ORDER  last_activity';
$where = $this->db->order_by("last_activity", "desc");
$this->db->where($where);
// $this->db->limit('1'); 
$this->db->group_by('m.user_id');// add group_by
$query = $this->db->get();
return $query->result();

Ответы [ 6 ]

0 голосов
/ 21 сентября 2018

Надеюсь, что это поможет вам

SELECT u.id,u.user_id,u.user_name,MAX(l.last_activity) AS last_activity
FROM tbl_user u
LEFT JOIN tbl_login_details l ON(u.user_id=l.user_id)
GROUP BY u.user_id

в построителе пользовательских запросов codeigniter

$query = $this->db->query("SELECT u.id,u.user_id,u.user_name,MAX(l.last_activity) AS last_activity FROM tbl_user u LEFT JOIN tbl_login_details l ON(u.user_id=l.user_id) GROUP BY u.user_id");

foreach ($query->result() as $row)
{
        echo $row->id;
        echo $row->user_id;
        echo $row->user_name;
        echo $row->last_activity ;
}
0 голосов
/ 20 сентября 2018

Вот простой SQL-код для его получения.Вы можете сделать это способом CodeIgniter: внедрить этот SQL в CodeIgniter.

SELECT tbl_user.user_id, tbl_user.user_name, tbl_login_details.user_id, tbl_login_details.last_activity FROM tbl_user, tbl_login_details WHERE tbl_user.user_id = tbl_login_details.user_id ORDER BY tbl_login_details.last_activity DESC
0 голосов
/ 20 сентября 2018

помощь в агрегации CI max, чтобы найти последнее действие:

$query = $this->db->query("select userid, max(last_activity) from tbl_user a inner join tbl_login_details b on a.userid=b.userid");

foreach ($query->result() as $row)
{
        echo $row->title;
        echo $row->name;
        echo $row->body;
}
0 голосов
/ 20 сентября 2018

Может быть, вы ищете для следующих

SELECT user_id, user_name, (SELECT last_activity FROM tbl_login_details WHERE tbl_login_details.user_id = tbl_user.user_id  ORDER BY last_activity DESC LIMIT 1) as last_activity FROM tbl_user 

обновленный код.Ищите, как написать этот подзапрос в активной записи.или просто используйте пользовательский запрос, например, $ query = $ this-> db-> query ("YOUR QUERY");

0 голосов
/ 20 сентября 2018

если вы пытаетесь получить последний подробный логин от каждого пользователя, если да, вы можете использовать ORDER DESC AND LIMIT 1

сначала создать запрос для отображения tbl_user

SELECT * FROM tbl_user ORDER BY id ASC

, затем вы можетесоздать запрос для получения последнего имени пользователя

SELECT * FROM tbl_login_details WHERE user_id = 7 ORDER BY id DESC LIMIT 1

вы можете использовать модальное всплывающее окно для отображения подробностей входа в систему.

или вы пытаетесь отобразить как это?

id    user_id   user_name  last_activity
1      5         mohammed   20-17-8-4
2      7          ahmed     20-17-8-4
0 голосов
/ 20 сентября 2018

используйте максимальное агрегирование, чтобы найти последнее действие:

select userid, max(last_activity)
from tbl_user a inner join tbl_login_details b on a.userid=b.userid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...