누군가이 코드의 차이점을 설명 할 수 있습니까? 쿼리 작성기는 올바른 결과를 제공하지 않지만 다른 쿼리는 올바른 결과를 제공하기 때문입니다.
내가 볼 수없는 차이점은 무엇입니까?
$this->db->select('m.*,c.COUNTRY_NAME');
$this->db->from('members m');
$this->db->join('country c','c.COUNTRY_ALPHA2_CODE = m.location', 'left');
$this->db->where('c.LANG', 'EN');
올바른 결과를 제공하는 쿼리
SELECT m.*,c.COUNTRY_NAME FROM members m LEFT JOIN country c ON c.COUNTRY_ALPHA2_CODE = m.location WHERE c.LANG = "EN";
CI로 완전한 쿼리 문자열을 생성하려면 다음 줄을 추가해야합니다.
$query=$db->get();
당신의 접근 방식에.
전체 코드는 다음과 같습니다.
$this->db->select('m.*,c.COUNTRY_NAME');
$this->db->from('members m');
$this->db->join('country c','c.COUNTRY_ALPHA2_CODE = m.location', 'left');
$this->db->where('c.LANG', 'EN');
$query=$db->get();
이 줄 뒤에 다음을 사용하여 SQL 문자열 출력을 확인할 수 있습니다.
echo $this->db->query();
여기에서 뷰에 대한 쿼리 결과 생성 을 계속 합니다.
댓글에 대한 응답 :
'$this->db->where('c.LANG', 'EN');'
작동하지 않습니다. 이 줄은 항상 db에서 첫 번째 언어를 반환합니다.
조인에 언어 쿼리를 배치해야합니다.
$this->db->select('m.*,c.COUNTRY_NAME');
$this->db->from('members m');
$this->db->join('country c','(c.COUNTRY_ALPHA2_CODE = m.location AND c.LANG=\'EN\')', 'left');
$query=$db->get();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다