주위를 읽은 후 SQL (MySQL의 경우)이 열 제외를 지원하지 않음을 알았습니다. 내가 받아 들일 왔어요 동안 행동의이 종류를 달성하기 위해 어떤 점잖은 해결 방법이 있는지SELECT 문의 모호한 열 제외 (실제로 CREATE VIEW 문)
SELECT *, NOT excluded_column FROM table; /* shame it doesn't work */
어쨌든, 궁금하네요. 이유는, 나는 보기을 만들어 일부 테이블에서 정보를 통합합니다.
일부 사용자 데이터를 테이블 user
및 user_profile
에 정규화했습니다. user
은 사용자 조작에 중요한 데이터를 저장하고, user_profile
은 중요하지 않은 데이터를 저장합니다. 응용 프로그램 요구 사항은 여전히 실현되고 있으므로 열은 필요에 따라 user_profile
에서 추가/제거되고 추가 테이블은 뷰에 포함될 줄 아래로 지원 될 수 있습니다.
보기를 만들 때 두 테이블 모두에 user_id
이 있으므로 Error 1060: Duplicate Column Name
이 표시됩니다.
지금, 나는 지금까지 가지고 올 한 솔루션은 기본적으로 :
user
테이블이 충분할 수있는 애플리케이션 라이프 사이클 (
희망)를 통해 변경되지 것입니다 때문에
/* exclude user_id from user */
SELECT user.critical_field, user.other_critical_field,
user_profile.*
FROM user
LEFT JOIN user_profile
ON user.user_id = user_profile.user_id;
하지만, 좀 더 역동적 인 접근 방식이 존재한다면 나는 단지 궁금했다.
(표 이름은 내가 user
은 종종 그 자체에 대한 명명 규칙의 가난한 선택을 알고, copypasta'd되지 않은, 내가 접두사를 사용합니다.) 일반적으로
설명 할 수없는 * -1 *은 도움이되지 않습니다. 내 질문에 불명확하거나 가난한 선택을 제안하면 그 이유를 알고 싶습니다. – Dan