2011-09-15 3 views
1

다음과 같은 mysql 쿼리가 있습니다.MYSQL : 하나의 값으로 만 작업하는 쿼리?

$query = "SELECT * FROM users 
      JOIN signup ON users.uid = signup.uid 
      JOIN jobs ON users.category_id = jobs.id 
      JOIN lclasses ON users.class = lclasses.class_id 
      JOIN degrees ON users.degree_id = degrees.degree_id 
      JOIN trades ON users.trade_id = trades.trade_id 
      JOIN tradestatuses ON users.trade_status = tradestatuses.status_id 
      WHERE users.uid='{$id}' LIMIT 1"; 

$ id = 8이면 쿼리가 올바르게 반환됩니다. 데이터베이스에있는 다른 ID를 사용하면 빈 결과 집합이 나타납니다.

phpMyAdmin에서 쿼리를 테스트하고 같은 결과를 얻었습니다. 다른 숫자를 사용할 때 쿼리에 오류가 없으며 단지 빈 결과 집합이지만 아직 탐색 섹션의 행을 볼 수 있습니다. 내 테이블이 부패한거야? 아무에게도 그런 일이 생긴 적이 있습니까?

+0

ID를 등을 똑바로 번호 1,2,3,4,5,6,7,8,9,10,11이다 레코드를 절단하는 가입 찾을 추가 한 후

SELECT * FROM users WHERE users.uid='{$id}' LIMIT 1 

에서 시작 ... – ReX357

+1

테이블에 null 값이 있습니까? 'JOIN'은 내부 조인이므로 null은 엉망이 될 수 있습니다. – waiwai933

+1

JOIN을 LEFT JOIN으로 변경하고 출력에서 ​​예기치 않은 NULL을 찾으십시오. –

답변

2

빈 결과 집합은 빈 결과 집합입니다.

그들은 모두 INNER 조인이기 때문에,의 하나는 "아무것도 연결"(따라서 빈 결과 집합을 결과) 될 수 합류했다. 신중하게 데이터를 검사하지 않고 더 말할 수는 없습니다. 어떤 부분이 "작동하지 않는지"확인하기 위해 쿼리를 부분으로 나누는 것을 고려할 것입니다.

해피 코딩. MU의 댓글 달기에서


유용한 조언 :

변경 당신의 왼쪽에 조인 조인 및 출력에 예상치 못한 NULL을 찾습니다.

+0

나는 널 조인을 했어, 고마워! – ReX357

0

아마, 문제는 쿼리 논리에 있습니다. 이를 확인하려면 테이블에 대한 설명과 예상되는 결과를 제공하십시오. 오류를 찾는 좋은 방법은 다른 조인에 대한 주석입니다.

관련 문제