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 将删除冗余结果,但是添加两个片段中的一个如何给出相同的结果集?显然 SELECT DISTINCT unit.id 应该通过 GROUP BY 如何删除冗余行?