sql - delete row from table where column does not exist in another table -


i have sql query deletes user's preferences userpref table if have not logged in 30 days (last login date located in momuser table), however, not verify user still exists in momuser. how can change if userpref.cuser not exist in momuser.code userpref row deleted in situation since not have last login date?

    delete userpref userpref     inner join momuser on momuser.code = userpref.cuser     momuser.log_start < getdate()-30 

change outer join, reverse condition (so match users want keep) , move join, use is null delete rows without joins:

delete userpref userpref left join momuser on momuser.code = userpref.cuser     , momuser.log_start >= getdate()-30 momuser.log_start null 

recall outer join returns nulls when join misses. moving date condition join, exercise not require joined row. clause filters out rows have kind of data want keep - leaving want delete.


Comments