У меня есть две таблицы notifications
и archived_notifications
.
Уведомления
id | title | caption | user_id
Архивные уведомления
notification_id | user_id
Как должен выглядеть запрос SQL, если я хочу получить строки из таблицы notifications
, для которых в таблице archived_notifications
нет строки, такой как notification_id = notification.id | user_id = notification.user_id
.
Теперь у меня есть такие
cursor.execute("SELECT * FROM notifications AS n WHERE "
"({}=%s AND (SELECT COUNT(*) FROM archvies WHERE {}=n.id AND {}=%s) = 0) "
"OR "
"({}=%s AND (SELECT COUNT(*) FROM archvies WHERE {}=n.id AND {}=%s) = 0) "
"ORDER by id DESC LIMIT %s OFFSET %s"
.format(Keys.USER_ID, Keys.NOTIFICATION_ID, Keys.USER_ID, Keys.DIRECTION, Keys.NOTIFICATION_ID,
Keys.USER_ID),
[str(user_id), str(user_id), NotificationsClasses.GLOBAL, str(user_id), int(limit), int(offset)])