0

我有两张桌子:“比赛”和“参赛作品”。在我的比赛表上,我有一个“已完成”列,告诉我比赛是否已经进行。在我的条目表上,我有一个用户 ID 列和一个比赛 ID 列。我正在尝试创建一个 JOIN,通过检查“条目”表中的所有行,然后检查每个特定行是否在“竞赛”表中完成了相应的竞赛 ID,我可以查看用户是否能够竞争。我的加入不是很强壮,到目前为止我有点迷茫。这是我到目前为止所拥有的,但它不能正常工作:

$this->db->select('*');
$this->db->from('entries');
$this->db->join('competitions', 'competitions.id = entries.competition_id');
$this->db->where('entries.user_id', $user_id);
$this->db->where('competitions.complete', '0'); //0 for incomplete, 1 for complete
$query = $this->db->get();
if ($query->num_rows() > 0) {
    return FALSE; //user is currently in an active competition
}else {
    return TRUE; //user is not in an active competition
}

我目前在 Codeigniter 工作,但在常规 PHP 中进行解释也可以。非常感谢你的帮忙!

4

1 回答 1

0

您可以使用左连接或右连接以获得更好的结果...

$this->db->join('table2','table1.id = table2.id','LEFT/RIGHT');

我想你也可以使用内连接,外连接......希望它有用

于 2012-08-20T10:23:54.963 回答