SELECT unit.id,
unit.unit_name,
unit.description,
unit.category_id,
city.name,
mealbase.name AS mealbase_name,
unit.province_id,
unit.rooms,
unit.max_people,
unit.thumblocation,
prices.normal_price,
prices.holiday_price
FROM jos_units AS unit,
jos_prices AS prices,
jos_cities AS city,
jos_meal_basis AS mealbase
WHERE prices.unit_id = unit.id
AND city.id = unit.city_id
AND unit.published = 1
AND unit.mealbasis_id = mealbase.id
このクエリを実行すると、以下のような冗長な結果セットが得られます。
しかし、私が追加した場合
SELECT DISTINCT unit.id
SELECT unit.id
最初または
GROUP BY unit.unit.id
最後の代わりに。以下のような正しい結果セットが得られます。
私の問題は私のクエリの何が問題になっていますか(上記の結合は、修正して結合した場合でも冗長な結果をもたらします)?ここでクエリ(問題を修正する)にSELECT DISTINCT unit.id
またはを追加するのはなぜですか?GROUP BY unit.unit.id
(DISTINCTとGROUP BYは異なる機能です)
`SELECT DISTINCT unit.idを追加すると冗長な結果が削除されることはわかっていますが、2つのスニペットのいずれかを追加すると同じ結果セットがどのように得られますか?明らかに、SELECT DISTINCT unit.idは、GROUP BYがどのように行うかによって、冗長な行を削除する必要がありますか?