당연합니다. 주신 방법대로 하면 cartesian product 로 해답이 나오기 때문입니다. 이와 같은 것을 해결하실려면 뭔가 그것을 제한하는 where 절을 명시해 줘야합니다.
즉 id 라는 필드가 같은 행끼리만 서로 빼기를 하게 한다던지 하는 등의 조건절을 주어야 한다는 것이지요.
select r.reg_amount-p.pro_stock from mall_registry r, mall_product p where r.id=p.id;
이해를 하셨는지요.
::lovehee 님께서 쓰시길::
> 두 테이블의 칼럼끼리 뺄셈연산을 할려구 하거든요..
>
> select r.reg_amount-p.pro_stock from mall_registry r, mall_product p ;
>
> 이렇게 했더니만,,
> 나오긴하는데요..
> 16개의 row가 나와요..
>
> 각각의 칼럼끼리 다 연산을 하는것 같아요.
> 4*4를 해서 16개의 row가 나와요..
>
> 4개의 row가 나와야하는데..
>
> 두 테이블의 공통 조건절이 있어야하나요?
> 다른 방법이라두 없을까요??
>
> -------------------------------------------------
> p.pro_num | r.pro_num
> -------------------------------------------------
> 3 | 20
> 5 | 20
> 6 | 10
> -------------------------------------------------
>
> 결과값이
>
> ------------------
> pro_num
> 17
> 15
> 4
> -------------------
>
> 이렇게 나오게 하고 싶어요..
>
> 그럼 ,, 읽어주셔서 감사합니다.
>
|