2017-01-19 1 views
0

SELECT SQL_CALC_FOUND_ROWS *을 사용하고 있지만 첫 번째 열과 같은 이름의 열이있는 테이블을 조인해야합니다.LEFT JOIN과 같은 이름의 열을 사용하는 방법

$sql = " 
    SELECT SQL_CALC_FOUND_ROWS * 
    FROM {$this->_db} 
    LEFT JOIN $this->_db2 ON $this->_db2.calc_id = $this->_db.calc_id  
"; 

방법이 일을하는 어떤 생각, 이제 두번째 테이블에서 값이 주먹을 덮어 쓰기는?

+0

테이블 이름을 사용하여'tableName.ColumnName' 열을 식별 할 수 있습니다. – Zelldon

+0

왜 SQL_CALC_FOUND_ROWS를 사용하고 있습니까? 이것은 쿼리에'LIMIT '이있는 경우에만 유용합니다. –

+0

ON 절과 마찬가지로 별칭을 사용하지 않는 이유는 무엇입니까? ('Db2' 또는'db')? 'SELECT db.SQL_CALC_FOUND_ROWS as DBFOUNDROWS, db. *, DB2. *'여전히 중복 된 컬럼 이름을 얻을 수 있지만 필요에 따라 별명을 지정할 수 있습니다. 가장 깨끗한 것이 아니라 tableAlias.column 이름에서 columsn을 개별적으로 선택하는 것이 좋습니다. – xQbert

답변

0

다른 필드와 동일한 이름의 필드가있는 테이블을 조인하기 때문에 SELECT *을 사용할 수 없습니다.

SELECT 문에 원하는 필드를 수동으로 나열해야합니다.

관련 문제