gpt4 book ai didi

mysql - 从不同表中获取特定记录的数据(codeigniter)

转载 作者:行者123 更新时间:2023-11-29 03:02:35 24 4
gpt4 key购买 nike

我的 SQL 中有 3 个表,如下所示

任务表:

id(pk)
title
workspaceid(fk of workspace id)
userid
description
esthours

里程碑表:

id
taskid(fk of task table id)
workspaceid(fk of workspace id)
userid
esthours
estmin

工作区表:

id(pk)
userid
title

我想显示 Task Table 中的 titleWorkspace Table 中的 titleesthoursestmin 来自里程碑表

如果Milestone Table没有esthoursestmin,那么它不会从Task Table中获取

我使用 join 完成了以下代码,但它会从 Task Table 中获取 esthours,但它应该从 Milestone Table 中获取。

function getMilestone($taskid, $userid, $workspaceid, $is_master_admin) {
$this->load->database();
if ($is_master_admin)
{
$this->db->select('user.title as usertitle,workspace.title as workspacetitle,workspace.id as workspaceid,task.title as tasktitle,task.id as taskid,task.esthours as taskesthrs,milestone.esthours as milestoneesthrs, task.*');
} else {
$this->db->select('*');
}
$this->db->from(TASK);
if ($is_master_admin) {
$this->db->join(USER, 'task.userid = user.id', 'left outer');
$this->db->join(WORKSPACE, 'task.workspaceid=workspace.id ', 'left outer');
$this->db->join(MILESTONE,'milestone.esthours=milestone.esthours','left outer');
//$this->db->join(TASK, ' .taskid= task.id', 'left outer');
} else {

}
$this->db->where('task.id', $taskid);
if ($is_master_admin) {
$this->db->order_by("userid", "asc");
} else {
$this->db->where('userid', $userid);
}

$query = $this->db->get();
// echo $this->db->last_query(); exit();

// echo $this->db->last_query(); exit ();

if ($query->num_rows() > 0) {
return $query->result();
} else {
return false;
}
}

我该怎么做?

最佳答案

首先从 MILESTONES 表中选择您的基本数据位,然后尝试基于这些数据位加入其他表。例如:

$this->db->from(MILESTONE);
$this->db->join(USER, 'milestone.userid = user.id', 'left outer');
etc...

关于mysql - 从不同表中获取特定记录的数据(codeigniter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20840487/

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