从表中查找相关数据

时间:2012-04-07 00:43:35

标签: php mysql codeigniter

我的mysql数据库中有三个表,如下所示: enter image description here

编辑

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

现在我要做的是找出Bon Jovi(请查看表格表:成员)与之关联的名称和要点。当发现有一个条件时......如果表:boss中的“condition_type”为1,那么下属的值将在右侧,如果table:boss中的“condition_type”为0,那么来自下属的值将是在左侧。

现在我想要找到的内容如下所示。

enter image description here

1 个答案:

答案 0 :(得分: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