При запросе подсчёта с условием выводит 0

Начал изучать базы данных, столкнулся с проблемой. Мне нужно, чтоб подсчитывалось количество id, у которых id_рефералов - id_польщователя, но почему-то выводит 0

    def count_referals(self, user_id):
        with self.connection:
            return self.cursor.execute("SELECT COUNT('id') FROM 'users' WHERE 'referrer_id' = ?", (user_id,)).fetchone()[0]

sqlite Data


Ответы (1 шт):

Автор решения: Namerek

Ответил в комментарии. Ниже пример того, как должен выглядеть код к вопросу

from sqlite3 import connect

user_id = 54279430

with connect('users.sqlite') as cn:

    cn.execute(
        """
create table if not exists users
(
    id          INTEGER not null
        constraint users_pk
            primary key autoincrement,
    user_id     INTEGER
        constraint user_id_key
            unique,
    username    TEXT,
    referrer_id INTEGER
        constraint users_users_user_id_fk
            references users (user_id)
            on update cascade on delete restrict
);
        """
    )
    cn.execute(
        """

create index if not exists users_username_index
    on users (username);

        """
    )
    cn.commit()

    cr = cn.cursor()

    cr.execute(
        """
insert into users (user_id, username, referrer_id)
    VALUES (54279430, 'user1', null),
           (5423886677, 'user2', 54279430),
           (5579204231, 'user3', 54279430) on conflict do nothing ;
        """
    )
    cn.commit()
    cr.execute("SELECT COUNT(`id`) FROM `users` WHERE `referrer_id` = ?", (user_id,))
    qty, = cr.fetchone() or (None,)
    cr.close()

    print(
        qty
    )

→ Ссылка