2014-06-24 13 views
1

사실 나는 단일 쿼리에서 여러 테이블 작업을 수행하기를 원합니다. 쿼리는mysql에서 여러 테이블 작업을 수행하는 방법은 무엇입니까?

select name,sno , id as ids ,(select sum(amount) from client_credits 
where user_id = ids) As total from clients where sno = '4' and total > '0' 

입니다. ** total> 0 **을 사용하려고하면이 쿼리가 작동하지 않습니다. 제발 저를 도울 다른 방법이 있습니까?

+0

원하는 결과와 예상되는 결과를 말할 수 있습니까? – Sadikhasan

+0

Total은 문자열이 아닌 숫자 일 것입니다. 0을 중심으로 따옴표없이 시도 했습니까? – scragar

답변

2

total은 별칭입니다. 별칭은 WHERE 절에 도달하면 해결되지 않습니다.

시도 : where sno = 4 having total > 0

또한,보다 효율적으로 다음 total > 0 부분이 사라 방법

SELECT `c`.`name`, `c`.`sno`, `c`.`id`, SUM(`ccr`.`amount`) AS `total` 
FROM `clients` AS `c` 
JOIN `client_credits` AS `ccr` ON `c`.`id`=`ccr`.`user_id` 
WHERE `c`.`sno` = 4 
GROUP BY `c`.`id` 

주의 사항? 참여할 행이 없으면 아무 것도 결합되지 않고 결과에서 행이 제거되기 때문입니다.)

+0

정말 고마워요 !! 'sno = 4가 총> 0 인 곳은 괜찮습니다. ' –