programing

어떻게 하면 이 스크립트를 수정하여 레코드를 표시하지 않고 삭제할 수 있습니까?

goodsources 2023. 10. 18. 22:03
반응형

어떻게 하면 이 스크립트를 수정하여 레코드를 표시하지 않고 삭제할 수 있습니까?

WITH CTE AS (
  SELECT 
    user_id, 
    ip_addr, 
    MIN(reg_date) AS min_reg_date
  FROM 
    user_info
  GROUP BY 
    ip_addr
  HAVING 
    COUNT(*) > 1
)
SELECT 
  users.id 
FROM 
  users
  JOIN user_info 
    ON users.id = users_info.user_id
  JOIN CTE 
    ON user_info.ip_addr = CTE.ip_addr
    AND user_info.reg_date > CTE.min_reg_date;

user_info 테이블:

CREATE TABLE `user_info` (
  `user_id` int(11) UNSIGNED NOT NULL,
  `ip_addr` varchar(255) DEFAULT NULL,
  `user_agent` varchar(255) DEFAULT NULL,
  `reg_date` timestamp NOT NULL DEFAULT current_timestamp()
)

사용자 테이블:

CREATE TABLE `users` (
  `id` int(11) UNSIGNED NOT NULL,
  `first_name` varchar(50) NOT NULL,
  `last_name` varchar(50) NOT NULL,
  `nickname` varchar(50) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL,
  `avatar` varchar(255) NOT NULL,
  `group_id` int(11) UNSIGNED DEFAULT NULL
) 

EXISTS 및 IN 키워드를 사용해 보았지만 오류가 "DELETE FROM..."에 가깝다고 표시됩니다. 다른 것을 변경해야 합니까? 도와주세요.

언급URL : https://stackoverflow.com/questions/75348045/how-can-i-modify-this-script-to-delete-the-records-instead-of-showing-them

반응형