車両のコンポーネントを含むデータベースを構築しています。次の 3 つのテーブルがあります。
- 車両テーブル (すべての車両が一意の ID 番号を持つ車両のリスト)
- タイヤ表 (タイヤのシリアル番号 (SN) と部品番号 (PN) と、タイヤが取り付けられている車両 (ID) を一覧表示)
- フィルター表 (フィルターのシリアル番号 (SN) と部品番号 (PN) と、フィルターが取り付けられている車両 (ID) を一覧表示)
特定の車両に取り付けられているすべてのフィルターとタイヤのシリアル番号と部品番号を取得する Access SQL クエリを作成したいと考えています (車両 ID が 5 のホンダ シビックを検索していると仮定します)。次のコードを作成しましたが、すべての結果のデカルト積を返します。各車両には 2 つのフィルターと 2 つのタイヤが取り付けられているため、結果を組み合わせて複製すると、次の結果が返されます。
- タイヤ 1 (PN および SN) | フィルター 1 (PN および SN)
- タイヤ 1 (PN および SN) | フィルター 2 (PN および SN)
- タイヤ 2 (PN および SN) | フィルター 1 (PN および SN)
- タイヤ 2 (PN および SN) | フィルター 2 (PN および SN)
返すクエリを作成できる方法はありますか:
- タイヤ 1 (PN および SN)
- タイヤ 2 (PN および SN)
- フィルター 1 (PN および SN)
- フィルター 2 (PN および SN)
私のコードは以下の通りです:
SELECT DISTINCT Tires.SN, Tires.PN, Tires.ID, Filters.ID, Filters.PN, Filters.SN,
Vehicle.ID
FROM (Vehicle
INNER JOIN Filters ON Vehicle.[ID] = Filters.[ID])
INNER JOIN Tires ON Vehicle.[ID] = Tires.[ID]
WHERE Vehicle.[ID] = 5;