쉽

subquery 전문가 함 보세요

select *  from c_deal where de_mb_id='admin' and de_t='5' and de_jo_name = (select  de_jo_name   FROM c_deal WHERE `de_mb_id` ='admin'  AND `de_t` ='5' group by de_jo_name having sum(de_qtyB)-sum(de_qtyS) < 1 )
 
요러면 원하는 리스트 나오는데
요걸
 
delete  from c_deal where de_mb_id='admin' and de_t='5' and de_jo_name = (select  de_jo_name   FROM c_deal WHERE `de_mb_id` ='admin'  AND `de_t` ='5' group by de_jo_name having sum(de_qtyB)-sum(de_qtyS) < 1 )
하면
 
MySQL 메시지: 
#1093 - You can't specify target table 'c_deal' for update in FROM clause
 
게 되는 이유 아시는분 ....

 

댓글 3개

상황별로 어떤지 모르겠네요. 일단 스키마랑 샘플 데이타를 올려주시면 좀더 명확하게 체크 될것 같네요.

체크해봐야 할 부분
1. delete 조건절에 subquery 가능 여부와 subquery 에 group by, having 가능 여부
- select 랑 delete랑 다를수 있음..
2. select 에 max를 써봄
3. de_jo_name = 을 de_jo_name in 조건으로 변경해봄
자기 자신을 참조하여 insert,update,delete 할경우.. 발생하는 오류입니다.
해당 서브쿼리를 한번 더 감싸주시면 됩니당..


DELETE from c_deal
WHERE de_mb_id='admin'
AND de_t='5'
AND de_jo_name = (select T1.de_jo_name
from ( select de_jo_name
from c_deal
where `de_mb_id` ='admin'
and `de_t` ='5'
group by de_jo_name
having sum(de_qtyB)-sum(de_qtyS) < 1) T1)
요런식으로...
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
16-03-02 조회 3,261
16-01-19 조회 2,548
15-12-23 조회 2,977
15-12-08 조회 3,700
14-10-30 조회 5,747
14-06-06 조회 5,573
12-08-30 조회 3,931
12-08-20 조회 3,851
12-07-15 조회 5,179
12-07-13 조회 3,644
12-07-06 조회 3,876
12-06-27 조회 3,384
12-06-23 조회 3,600
12-05-03 조회 5,206
12-04-20 조회 4,138
12-03-29 조회 4,654
12-03-22 조회 4,762
12-03-22 조회 3,534
12-03-21 조회 3,306
12-03-11 조회 3,727
12-03-06 조회 4,282
12-02-22 조회 4,553
12-02-17 조회 3,352
12-02-17 조회 6,208
12-02-14 조회 6,154
12-02-06 조회 4,280
12-01-18 조회 3,232
12-01-06 조회 3,458
11-12-30 조회 3,936
11-12-30 조회 7,080
11-12-21 조회 3,301
11-12-21 조회 4,267
11-12-16 조회 3,297
11-12-15 조회 3,331
11-12-15 조회 3,445
11-12-15 조회 4,247
11-12-09 조회 3,249
11-12-09 조회 3,322
11-12-07 조회 2,885
11-12-07 조회 3,975
11-12-05 조회 4,423
11-12-02 조회 3,882
11-12-01 조회 2,753
11-12-01 조회 2,803
11-12-01 조회 2,784