1

このクエリを実行する方法を理解しようとしています。一定の期限内に登録したがアクティベートしていないすべてのユーザーを削除しようとしています。

function purgeNA($expirePeriod)
{
    $this->db->where('usersStatusesID', 1);
    $this->db->where('UNIX_TIMESTAMP(registrationDate) <', time() - $expirePeriod);
    $this->db->delete($this->usersRegistrationsTable);
}

これが私のdb構造です:

usersRegistrationsTable - userID, registrationDate
usersTable              - userID, usersStatusesID
4

1 に答える 1

4

私の知る限り、codeigniterはActiveRecordインターフェースを介したクエリでJOINsをサポートしていません。DELETE代わりに、SQLステートメントを実行する必要があります。

$sql = "DELETE FROM 
          usersTable u
          JOIN usersRegistrationsTable r ON u.userID = r.userID
          WHERE usersStatusesID = 1 AND UNIX_TIMESTAMP(registrationDate) < ?";
$this->db->query($sql, array(time() = $expirePeriod));
于 2012-06-05T12:44:25.333 に答える