これがばかげた質問である場合は、許してください。私は PostgreSQL にあまり詳しくありません。
私の地域の中古車販売店から在庫データを収集し、postgreSQL テーブルに保存しました。特定のメーカーとモデルに関する特定の詳細が記載された 2 番目の表があります。例えば:
ディーラーテーブルは次のように構成されています。
-----------------------------------------
| Dealership | Make | Model | Year | ID |
----------------------------------------|
| A | Ford | F250 | 2003 | 1 |
| A | Chevy| Cobalt| 2005 | 2 |
| B | Ford | F250 | 2003 | 1 |
| B | Dodge| Chrgr | 2012 | 3 |
-----------------------------------------
詳細テーブルは次のように構成されています。
-----------------------------------------
| ID | DetailA| DetailB| DetailC|
-----------------------------------------
| 1 | data | data | data |
| 2 | data | data | data |
| 3 | data | data | data |
| 4 | data | data | data |
-----------------------------------------
私の目標は、複数のディーラーから一致する車両を取得し、適切な詳細を表示することです。上記の例では、次のことを確認したいと思います。
-----------------------------------------------------
| Make | Model | Year | DetailA | DetailB | DetailC |
-----------------------------------------------------
| Ford | F250 | 2003 | data | data | data |
-----------------------------------------------------
この結果により、A と B の両方が 2003 年の Ford F250 を販売していることがわかります。また、車両の関連する詳細を表示できます。
私はさまざまなクエリを試しましたが、ほとんどは次のようなバリエーションです。
SELECT DISTINCT
dealership_table.make,
dealership_table.model,
dealership_table.year
details_table.detaila,
details_table.detailb,
details_table.detailc
FROM
dealership_table
INNER JOIN
details_table
ON
dealership_table.id = details_table.id
WHERE
dealership_table.dealership = 'A'
OR
dealership_table.dealership = 'B'
ただし、これは、ディーラーが A または B のいずれかであるテーブルからのすべての個別の一致を返します。複数の内部結合を試しましたが、エラーを訴えるエラーdetails_table
が複数回指定されています。
私が本当にばかげたことをしているなら、私は謝ります。前にも言ったように、私はほとんど SQL 初心者です。
私は何を間違っていますか?目的の結果を取得するにはどうすればよいですか? 提案、解決策、またはアドバイスは大歓迎です!