0

クエリの結果をフィルタリングしようとしていますが、探している動作が得られません。

主キー ID を持つテーブル項目があります。

存在する可能性のあるプロパティがいくつかありますが、問題を引き起こしているのは「may」です。プロパティが一致する場合、またはプロパティが存在しない場合、アイテムを結果に含めたいと思います。

存在しなければならないプロパティについては、 を使用して、必要INNER JOINなものを正確に取得します。

存在する可能性のあるものについては、プロパティが満たされた場所で結果を得ていますが、空の場所ではありません。

例えば

SELECT id, name
FROM item
INNER JOIN itemWhereTable ON 
( item.id = itemWhereTable.itemID AND itemWhereTable.locationID = 13 )
INNER JOIN itemColorTable ON 
( item.ID = itemColorTable.itemID AND itemColorTable.ColorID = 2 )
WHERE 
item.minCost <=50

INNER JOINまた、ColorId が設定されていない場合 (つまり、一部のパッケージは一般的で、特定のパッケージのみが追跡されます)、つまり 2 番目が空の結果を返す場合の結果も確認したいと思います。

試してみましたLEFT JOINが、必要なものではないようです。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1