В базе есть таблица "Users", в ней есть колонка user_id (числовое значение) Любой юзер может создать объявление(строку) в таблице "obj", которому будет присвоен obj_id (числовое значение), а также в таблице obj есть колонка obj_author, значение которой равно user_id.
То есть, я создаю юзера, получаю user_id = 16001
Создаю объявление c obj_id = 3200, и obj_author = 16001
Создаю еще одно объявление c obj_id = 3201, и obj_author = 16001
99% спамеров создают только профили, соответственно, если у профиля нет объявлений, его можно удалять. Нужно для каждой строки таблицы obj сделать сравнение Если user_id = author, то оставляем, если нет,то строку с данным user_id удаляем.
Это можно как то сделать?
Например так:
delete from users ud where ud.user_id in (Select
user_id
from
users u
left join objects o on o.user_id=u.user_id
where
IS_NULL(o.user_id))
Спасибо Владимиру Клыкову, он дал нужное направление, но его код написан на скорую руку, и выдает ошибку. Мне нужно удалить строки из таблицы e1xc7_users, если значение столбца id не существует в столбце obj_author любой строки в таблице e1xc7_obj Вот работающее решение.
DELETE u
FROM e1xc7_users u INNER JOIN
(SELECT us.id FROM e1xc7_users us
LEFT JOIN
e1xc7_obj o ON us.id = o.obj_author
WHERE
o.obj_author IS NULL) u2
ON u.id = u2.id
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Всем привет мне надо сделать древовидную структуру!
Я решил обратиться к вам за помощью, ибо сам не понимаю как с этим боротьсяУ меня есть паблик-бот, который состоит в беседе, имеет полный доступ...