2 つのテーブルがあるとします。
CREATE TABLE state (
id TINYINT,
state CHAR(2),
PRIMARY KEY (id)
);
CREATE TABLE valid_state (
id INT,
state CHAR(2), # or stateId TINYINT or whatever
productId INT
);
製品が CA でしか販売できない場合、valid_state に 1 つのエントリがあります。すべての州で販売できる場合、valid_state にエントリはありません。どの州でも販売できない場合は、未定義の製品テーブルで製品を無効にする必要があります。
私の質問は次のとおりです。特定の製品の有効な状態をすべて選択するにはどうすればよいですか? 理想的には、valid_state から選択し、空かどうかを確認し、空である場合はすべての状態を返すだけです。残念ながら、これを行う方法がわかりません。
何か案は?
(また、fwiw、私はスキーマを設計していないので、変更を提案してもあまり役に立ちません)