選択を行う必要がある単純なテーブルがありますが、次のようにする必要があります。
テーブルの例
StatusID StatusCode BrandID StatusName
1 1 1000 First Status
2 2 1000 Second Status
3 3 1000 Third Status
4 1 2000 First Custom Status
これを出力するには、BrandID = 1000 の選択クエリが必要です。
StatusID StatusCode BrandID StatusName
1 1 1000 First Status
2 2 1000 Second Status
3 3 1000 Third Status
これを出力するには、BrandID = 2000 の選択クエリが必要です。
StatusID StatusCode BrandID StatusName
4 1 2000 First Custom Status
2 2 1000 Second Status
3 3 1000 Third Status
つまり、BrandID がデフォルト (1000) の場合、この BrandID に属するすべての行を選択する必要がありますが、BrandID が 2000 の場合、この BrandID に属するすべての行と、BrandID 2000 がない場合はデフォルトの BrandID を持つ行を選択する必要があります。特定の StatusCode。これで十分な説明になることを願っています。これは私が取り組んできたクエリです
SELECT *
FROM table
GROUP BY StatusCode
HAVING BrandID = 2000
意図したとおりに動作しないことは明らかです。