0

「コンペティション」と「エントリ」の 2 つのテーブルがあります。私の競技テーブルには、競技が実行されたかどうかを示す「完了」列があります。私のエントリ テーブルには、ユーザー ID 列と競技 ID 列があります。「エントリ」テーブルのすべての行をチェックしてから、特定の行ごとに「競合」テーブルで対応する競合 ID が完了しているかどうかをチェックすることで、ユーザーが競合できるかどうかを確認する JOIN を作成しようとしています。私は結合にあまり強くなく、これまでのところ少し迷っています. これは私がこれまでに持っているものですが、正しく機能していません:

$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 に答える