编辑:我将把帖子原样留在这里,但我真正需要完成的事情需要重新发布。我没有很好地解释这个问题。在以完全不同的起点再次尝试后,我能够获得所需的查询。这是解释here。
原始问题: 我遇到了麻烦。我查看了类似的线程,但找不到特定于该查询的解决方案。数据库非常大,group by 似乎大大减慢了它的速度。
问题是我得到重复的结果。这是我的查询导致重复:
SELECT
itpitems.identifier,
itpitems.name,
itpitems.subtitle,
itpitems.description,
itpitems.itemimg,
itpitems.mainprice,
itpitems.upc,
itpitems.isbn,
itpitems.weight,
itpitems.pages,
itpitems.publisher,
itpitems.medium_abbr,
itpitems.medium_desc,
itpitems.series_abbr,
itpitems.series_desc,
itpitems.voicing_desc,
itpitems.pianolevel_desc,
itpitems.bandgrade_desc,
itpitems.category_code,
itprank.overall_ranking,
itpitnam.name AS artist,
itpitnam.type_code
FROM itpitems
INNER JOIN itprank ON ( itprank.item_number = itpitems.identifier )
INNER JOIN itpitnam ON ( itpitems.identifier = itpitnam.item_number )
WHERE mainprice >1
结果实际上并不完全重复。itpitnam.type_code 在其他重复的结果中具有不同的结果。
由于在查询末尾添加 GROUP BY 会对服务器造成太大压力(它正在搜索大约 300,000 条记录),我还能做什么?
这可以重写为子查询吗?我只是不知道如何消除 type_code 已更改的第二个实例。
感谢您的帮助和帮助。
我还尝试了 SELECT DISTINCT itpitems.identifier,但这提供了相同的结果并且有重复项(其中 type_code 是唯一的区别)。我不想要 type_code 已更改的第二个实例。无论 type_code 是否有多个实例,我只想要每个标识符一个结果。