2011-12-13 2 views
0

0을 반환하지 카운트 h_id 그러면 행이 선택되지 않습니다. SQL에 0의 개수로 선택된 행을 나타내지 않게하는 방법이 있습니까?MySQL은 나는 다음과 같은 코드가 한 특정 ID

c_id에 의해 행이 선택되지 않았으므로 WHERE에 의해 PHP 루프가 행을 건너 뛴 것으로 보입니다.

내가 직접

$sql = "SELECT your, stuff, here"; 
$qry = mysql_query($sql) or die("ERROR: ".mysql_error()); 
if($mysql_num_rows($qry) == 0) { 
    # DO YOUR STUFF HERE FOR NO RESULTS 
} else { 
    # DO YOUR STUFF HERE FOR RESULTS 
} 

나는 이것이 옳은 길에 당신을 얻을 수 바라며, 그래, 내가 아는 같은 쿼리에서 문 IF 간단한을 사용하여 이러한 유형의 상황에 실행할 수 PHP와 MySQL과

답변

1

. h.info에 대한 열 값이 왼쪽 조인에서 널 (NULL)이면 where 절 조건이 true가 아니기 때.에 행이 필터링됩니다.

+0

안녕하세요 @Bart, 나는 당신의 모범을 보았고 완벽하게 작동합니다. 정말 고맙습니다! – user1092780

1

SQL은 유효하지 않습니다. 이미 SQL을 가지고 있기 때문에 관련이 없습니다. 단지 데모 용입니다.

SELECT 
    c.c_id, 
    c_name, 
    (
    SELECT COUNT(h.h_id) 
    FROM h 
    WHERE h.h_id = c.c_id 
    AND h.info_id = 25 
) AS count 
FROM c 
WHERE c.c_id = {$sqlrow['c_id']} 
0
SELECT c.c_id, c_name, count(h.h_id) AS count 
FROM c 
LEFT JOIN h ON h.h_id = c.c_id 
and h.info_id = 25 
AND c.c_id = {$sqlrow['c_id']} 
GROUP BY c.c_id 

where 절에 시간 테이블에 조건을 넣어, 그것은 내부 조인에 참여 왼쪽 변환합니다 :에 대해 무엇