我有一个字符串数组我想编写一个查询
首先,它将根据特定表中的Id计算基于数组中第一个产品名称的产品
如果值大于1,则从列表中随机选择前一个id
否则,如果计数为1或0,则使用字符串数组中的下一个值执行相同的查询。
任何机构都可以为这种情况提出合适的查询
答案 0 :(得分:0)
我假设数组数据在TMP_ARRAY中。
您有两套产品和数组,您只想从产品中检索数组中的那些产品。为此,您应该使用inner join
和正确的on子句,接下来要按列名称将这些结果设置为组GROUP BY
,因为您只想对单个组大小大于1的结果进行操作,条款having
需要在你想要从他们的'top'id中选择的末尾添加。在这里,我们有一个问题你的意思是'顶'?在数据库中,数据没有任何特定的顺序。我认为这是最大的,在这种情况下的另一种情况意味着只有一个结果,所以对于这两种情况我们选择MAX(ID)。
结果我想出了类似的东西
SELECT MAX(ID) FROM PRODUCTS p INNER JOIN TMP_ARRAY t ON t.NAME = p.NAME GROUP BY p.NAME HAVING COUNT(ID) > 1;
但我不确定我是否理解了一切正确。