내부 조인을 사용하는 mysqli SELECT 쿼리가 있는데 커다란 문제를 발견했습니다. 조건에 대한 열 값이 NULL 인 행을 선택하지 않습니다 두 번째 표에 존재하지 않음).PHP MySQL - 내부 조인 (null이 아닐 경우에만)
<?php
$sql = mysqli_connect(/* CONNECTION */);
$query = "SELECT " .
"e.EQUIPMENT_ID, " .
"e.CUSTOMER_ID, " .
"e.DESCRIPTION, " .
"e.LOCATION, " .
"e.JOB_SITE, " .
"e.PROJECT_NAME, " .
"jb.DESCRIPTION AS JOB_SITE_NAME " .
"FROM equipments e " .
"INNER JOIN jobsites jb ON jb.JOBSITE_ID = e.JOB_SITE " .
"WHERE e.CUSTOMER_ID = 1 ".
"ORDER BY e.EQUIPMENT_ID ASC";
$results = mysqli_query($sql, $query);
if(!isset($data)) $data = array(); $cc = 0;
while($info = mysqli_fetch_array($results, MYSQLI_ASSOC)){
if(!isset($data[$cc])) $data[$cc] = array();
///// FROM TABLE equipments /////
$data[$cc]['EQUIPMENT_ID'] = $info['EQUIPMENT_ID'];
$data[$cc]['DESCRIPTION'] = $info['DESCRIPTION'];
$data[$cc]['LOCATION'] = $info['LOCATION'];
$data[$cc]['PROJECT_NAME'] = $info['PROJECT_NAME'];
$data[$cc]['JOB_SITE_ID'] = $info['JOB_SITE'];
///// FROM TABLE jobsites /////
$data[$cc]['JOB_SITE'] = $info['JOB_SITE_NAME'];
$cc++;
}
print_r($data);
?>
그래서 내가 말했듯이, 코드 값을 반환하지만 열 "JOB_SITE"내부 "장비"는 현장 ID를 가지고있는 경우에만 (null이 아닌) : 여기에 내 코드입니다. 추한 해결책은 "empty"라는 jobsite_id를 사용하여 "jobsites"테이블에 행을 만드는 것입니다. 그러나이 작업을 건너 뛸 수 있다면 그렇게 할 것입니다.
e.JOB_SITE가 null이 아닌 경우에만 참여할 수 있습니까?
사용이 가입 왼쪽
이 쿼리는 열equipments
테이블에jb.JOBSITE_ID
일치하지있을 경우JOB_SITE_NAME
에 대한NULL VALUE
를 반환합니다 (표시되지 않습니다 완료) – Eric그게 전부 야! 왼쪽 결합! 정말 고맙습니다!! – pmrotule
도움을 청할 수있어서 다행입니다. – Eric