표 1과 나는 "마스터"가격을 저장하는 제품 테이블이 있습니다가입 - 테이블이 재정의 필드가
등 내 생각은 다른 테이블에서 딜러 별 차이를 저장하기 위해 다른 가격을 설정, 정가를 오버라이드 (override) 시간을 설치할 수 있습니다제품
==========합니다.
ID
partnum
설명
가격
installtime
딜러이었다 :
무시
========= =.
내가 딜러의 가격에 대한 DB를 조회 할 때, 나는이 테이블에 가입해야
partnum
가격
installtime
dealerID. 재정의 테이블의 값을 제품 테이블의 값보다 우선해야합니다.
SELECT partnum, price, installtime FROM products
JOIN overrides ON products.partnum = overrides.partnum
WHERE dealerID = 123
작성된 것처럼 물론 오류가 발생합니다. 요점은 제품 테이블의 가격 대신에 대체 테이블에서 가격이 필요하다는 것입니다 (설치시와 동일). 다른 필드 이름을 사용하고 PHP 계층에 로직을 옮길 수 있습니다. 그러나 SQL은이를 처리 할 수 있어야합니다.
감사합니다. 이것은 아름답게 작동합니다. IFNULL과 COALESCE간에 차이가 있습니까? MySQL 문서를 살펴보면 필자는 두 문서 사이에 큰 차이가 없음을 알 수있다. – skypanther
@skypanther 아니요, 'IFNULL'은 MySql에서 지원하고, 'COALESCE'는 ANSI 표준이며 모든 RDBMS에서 지원합니다. –
글쎄, 나는이 질문을 mysql 질문으로 태그를 붙 였으므로 나는 Tyler Eaves에게 그것을 주겠다고 오랫동안 생각했지만 대답을 너에게 줄 것이다. – skypanther