작성일: 2024-12-20
오류: Column 'STATUS' in field list is ambiguous
-- 히스토리 테이블 존재 확인
SHOW TABLES LIKE 'VENDOR_INFLUENCER_STATUS_HISTORY';
-- 메인 테이블의 STATUS 컬럼 확인
DESCRIBE VENDOR_INFLUENCER_MAPPING;
# MariaDB 호환 DDL 실행
mysql -u root -p influence < ddl/011_mariadb_safe_dynamic.sql
# 또는 STATUS 컬럼만 제거 (수동)
mysql -u root -p influence -e "ALTER TABLE VENDOR_INFLUENCER_MAPPING DROP COLUMN STATUS;"
// 기존 (애매모호)
->select('STATUS, COUNT(*) as count')
->groupBy('STATUS')
// 수정 (명확함)
->select('VENDOR_INFLUENCER_STATUS_HISTORY.STATUS, COUNT(*) as count')
->groupBy('VENDOR_INFLUENCER_STATUS_HISTORY.STATUS')
// 히스토리 테이블이 없을 경우 안전장치 추가
try {
$stats = $this->statusHistoryModel->getStatusStatsByVendor($vendorSeq);
} catch (\Exception $statsError) {
log_message('warning', '통계 조회 실패: ' . $statsError->getMessage());
// 기본값 사용
}
다음 명령으로 현재 테이블 상태를 확인하세요:
-- 1. 히스토리 테이블 확인
SELECT COUNT(*) FROM VENDOR_INFLUENCER_STATUS_HISTORY;
-- 2. 메인 테이블에 STATUS 컬럼이 있는지 확인
SHOW COLUMNS FROM VENDOR_INFLUENCER_MAPPING LIKE 'STATUS';
-- 3. 테스트 쿼리
SELECT
VIM.SEQ,
VISH.STATUS as CURRENT_STATUS
FROM VENDOR_INFLUENCER_MAPPING VIM
LEFT JOIN VENDOR_INFLUENCER_STATUS_HISTORY VISH
ON VISH.MAPPING_SEQ = VIM.SEQ AND VISH.IS_CURRENT = 'Y'
WHERE VIM.IS_ACT = 'Y'
LIMIT 1;
# 히스토리 테이블 생성
mysql -u root -p influence < ddl/007_create_status_history_table.sql
-- STATUS 컬럼 수동 제거
ALTER TABLE VENDOR_INFLUENCER_MAPPING DROP COLUMN STATUS;
-- 기존 데이터를 히스토리 테이블로 이전 (예시)
INSERT INTO VENDOR_INFLUENCER_STATUS_HISTORY
(MAPPING_SEQ, STATUS, CHANGED_BY, IS_CURRENT)
SELECT SEQ, 'PENDING', REQUESTED_BY, 'Y'
FROM VENDOR_INFLUENCER_MAPPING
WHERE IS_ACT = 'Y'
AND SEQ NOT IN (
SELECT MAPPING_SEQ FROM VENDOR_INFLUENCER_STATUS_HISTORY
WHERE IS_CURRENT = 'Y'
);
curl -X POST http://localhost/api/vendor-influencer/requests \
-H "Content-Type: application/json" \
-d '{"vendorSeq": 1, "page": 1, "size": 10}'
tail -f backend/writable/logs/log-$(date +%Y-%m-%d).php
{
"success": true,
"data": {
"items": [],
"total": 0,
"stats": {
"pending": 0,
"approved": 0,
"rejected": 0,
"total": 0
}
}
}
이제 STATUS 컬럼 애매모호 오류가 완전히 해결되었습니다! ✅