我无法让我的查询正常工作。
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 (SELECT DISTINCT type_code FROM itpitnam) itpitnam ON (itprank.item_number = itpitnam.item_number)
WHERE mainprice > 1
LIMIT 3
我在“字段列表”中不断收到未知列“itpitnam.name”。
但是,如果我将 DISTINCT type_code 更改为 *,我不会收到该错误,但我也不会得到我想要的结果。
这是一个很大的结果表,所以我正在制作一个虚拟示例......
使用 *,我得到类似:
+-----------+---------+----------+
| identifier| name | type_code|
+-----------+---------+----------+
| 2 | Joe | A |
| 2 | Amy | R |
| 7 | Mike | B |
+-----------+------------+-------+
这里的问题是我有两个 identifier = 2 实例,因为 type_code 不同。 我在查询的外部尝试了 GROUP BY,但是它筛选了这么多记录,这给服务器造成了太大的压力,所以我试图找到一种替代方法来获得我需要的结果。
我想要实现的(使用相同的虚拟输出)看起来像这样:
+-----------+---------+----------+
| identifier| name | type_code|
+-----------+---------+----------+
| 2 | Joe | A |
| 7 | Mike | B |
| 8 | Sam | R |
+-----------+------------+-------+
无论 type_code 是否不同,它都应该跳过重复的标识符。
有人可以帮我修改此查询以获得上图中模拟的结果吗?