1

我的 mysql 数据库中有三个表,如下所示: 在此处输入图像描述

编辑

“成员”表包含一些成员的名称和代码。现在,表“Boss”包含已被选为某事件 Boss 的成员的姓名。每个老板至少有一个下属(请查看下属表)。

现在我要做的是找出 Bon Jovi(请检查表 table:members)关联的名称和它们的点。当发现有条件时...如果 table:boss 中的“condition_type”为 1,则下属的值将在右侧,如果 table:boss 中的“condition_type”为 0,则下属的值将在左侧。

现在我试图找出的内容如下所示。

在此处输入图像描述

4

1 回答 1

2

好的,我已经为您找到了解决方案,我正在发布

$condition  = 1;// Condition will be provided by you for selection. Could be zero  
$data   =   array(
        'members.name',
        'subordinates.points',
        'subordinates.event'
);

$this->db->select($data);
$this->db->join('members','members.code = subordinates.member_code','left');
$this->db->join('boss','boss.event = subordinates.event','left');
$this->db->where('boss.condition_type',$condition);
$this->db->where('boss.event    =   subordinates.event');
$this->db->get('subordinates');

此外,我在选择中有事件,以便您识别查询将带来的事件差异。请测试一下,看看它是否适合您。列名可能略有不同。一个好的方法是像这样使用表之间的简单易懂的关系。

Table1 :  members
Columns : id , code , name
Table2 :  boss
Columns : id , event , member_code , condition_type
Table3 :  subordinates
Columns : id , boss_event , member_code , points
于 2012-04-09T06:24:07.230 回答