「コンペティション」と「エントリ」の 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 での説明でも問題ありません。助けてくれてどうもありがとう!