当前位置: 首页 > 知识库问答 >
问题:

sql-left JOIN和WHERE语句仅显示第一行

李星波
2023-03-14

我读了很多线程,但没有得到正确的解决我的问题。和这根线不相上下

SELECT
    '"Dose History ID"' = d.dhs_id,
    '"TxFieldPoint ID"' = tp.tfp_id,
    '"TxFieldPointHistory ID"' =  tph.tph_id,
    ...

FROM txfield t
LEFT JOIN txfielpoint tp ON t.fld_id = tp.fld_id
LEFT JOIN txfieldpoint_hst tph ON fh.fhs_id = tph.fhs_id
...

WHERE d.dhs_id NOT IN ('1000', '10000')
    AND ...
ORDER BY d.datetime,...;

这是基于一个包含大量表和机器值的非常大的数据库。我选择了我感兴趣的列,并通过它们的内置表ID将它们链接起来。现在,我必须减少我的结果,我得到了许多相同值的行,只是ID改变了。我只需要一(第一)行的“tph.tph_id”与像这样的机制

WHERE "Rownumber" is 1

或者类似这样的东西。到目前为止,我无法实现适当的子查询或使用row_number()SQL函数。您的帮助将非常感谢。结果如下所示,基于最后一个ID,我只需要为每个og这个数字(所有ID都不是严格连续的)一行。

A01";261511;2843119;714255;3634457;
A01";261511;2843113;714256;3634457;
A01";261511;2843113;714257;3634457;
A02";261512;2843120;714258;3634464;
A02";261512;2843114;714259;3634464;
....

共有1个答案

令狐和裕
2023-03-14

我认为“分组”可能适合你的需要。

您可以将一组列具有相同值的行分组为单行

 类似资料:
  • 问题内容: 我将如何在没有硬编码值的情况下编写此sql语句? 宁愿有这样的事情: 提前致谢.. 问题答案: 用您当前的方式构造SQL查询是一个糟糕的主意,因为它为各种SQL注入攻击打开了大门 。为了正确执行此操作,您必须改为使用“ 预备语句”。这也将解决您目前显然遇到的各种逃避问题。 请注意,这是一个昂贵的调用(除非您的应用程序服务器使用语句缓存和其他类似的功能)。从理论上讲,最好先准备一次语句,

  • 问题内容: 这是我的桌子: 然后,出于某种目的,我运行sql更新表t1中的日期: 现在,查看更改: 我不知道为什么匹配的行数为1,并且很难理解t1的列的值是id = 1而不是3的值2。当它与第一行匹配时,更新停止了吗?我认为在这种情况下,它将在t1和t2之间进行完整的数据匹配。任何帮助表示赞赏! 更新 谢谢,这是我正在认真处理的情况: 对于t2中的值,将它们用’,’分隔,并通过每个id合并到表t1

  • 问题内容: SQL不是我的强项,但是我无法弄清楚为什么它不起作用。我只是想基于一个值运行一个不同的AND语句。具体来说,如果foo =0,我想在dateDiff函数中更改datePart 问题答案: 试试这个-

  • WHERE 子句用于过滤记录。 SQL WHERE 子句 WHERE 子句用于提取那些满足指定标准的记录。 SQL WHERE 语法SELECT column_name,column_name FROM table_name WHERE column_name operator value; 演示数据库 在本教程中,我们将使用 RUNOOB 样本数据库。 下面是选自 "Websites" 表的数据

  • 问题内容: 该查询允许对结果进行过滤,而不是对我将如何更新的结果进行过滤,因此它仅严格显示大学= 2时的结果 我将全文搜索与LIKE结合使用的原因是,由于全文搜索具有的最小字母数,并且由于我处于共享主机计划中,因此无法修改设置。结果,我将全文和LIKE结合在一起以适应 问题答案: 修正括号 具有比更高的优先级,因此只能与结合使用,而不能与测试结合使用。

  • 问题就在这里:我创建了世界上最简单的RecyclerView,但它只显示第一个项目。我不明白为什么。谢谢你的帮助。 item_layout.xml mainactivity.java