这种事情是在 SQL 中完成的,而不是 Java。
但是你还没有定义你想要什么。如果您希望每个 itemcode 只查看一次,可以通过按 itemcode 分组来实现。然后,您必须决定要如何处理您将为每个项目代码获得的记录组。这称为“聚合”。例如,您可能希望查看每个字段的最大值(按数据库使用的排序规则排序):
SELECT itemcode,
MAX(itemname),
MAX(productcode),
MAX(productname)
FROM table1
GROUP BY itemcode
ORDER BY itemcode
或者,您可能有兴趣查看四个字段的所有唯一组合的列表:
SELECT itemcode,
itemname,
productcode,
productname
FROM table1
GROUP BY itemcode, itemname, productcode, productname
ORDER BY itemcode, productcode
当然,这意味着您很可能会两次看到 itemcode 123,一次是 productcode 456,然后是 productcode 789。
这一切都取决于你在寻找什么。如果您需要更好的帮助,您必须弄清楚并解释。如果您可以显示您的表结构和一些示例数据以及所需输出的列表,则会更容易。
更新
根据您更新的问题,我认为您正在加入一个“代码”,该代码为您提供跨四个表的多个匹配项,但您希望在每个表中看到与该代码关联的唯一“名称”。这将需要这样的东西:
SELECT productcode,
productname,
A_itemname,
B_itemname,
C_itemname
FROM Table1
JOIN Table2 ON A_itemcode = productcode
JOIN Table3 ON B_itemcode = productcode
JOIN Table4 ON C_itemcode = productcode
GROUP BY productcode,
productname,
A_itemname,
B_itemname,
C_itemname
如果这不是您的想法,请尝试再次解释。
同样,在 SQL 中执行此操作,而不是在 Java 中。