Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询只返回唯一的结果_Sql - Fatal编程技术网

SQL查询只返回唯一的结果

SQL查询只返回唯一的结果,sql,Sql,我有以下SQL查询,它工作正常 SELECT * FROM wp_rg_lead INNER JOIN wp_rg_lead_detail ON wp_rg_lead.id=wp_rg_lead_detail.lead_id WHERE wp_rg_lead.form_id = '7' and cast(date_created as date) >= current_date - interval '7' day 我想修改它,只返回唯一的记录。

我有以下SQL查询,它工作正常

SELECT *
FROM
    wp_rg_lead
    INNER JOIN wp_rg_lead_detail ON
            wp_rg_lead.id=wp_rg_lead_detail.lead_id
WHERE wp_rg_lead.form_id = '7'
and  cast(date_created as date) >= current_date - interval '7' day
我想修改它,只返回唯一的记录。我的问题是,每个“条目”实际上是由几个类似的条目组成的

id  |  form_id  |  entry_id  |    value
--------------------------------------------
1        1            75          red
2        1            75          broken
3        1            75          apple
4        7            33          yellow
5        7            33          faulty
6        7            33          banana
7        7            33          ripe
8        7            22          red
9        7            22          strawberry
10       7            22          broken
11       7            22          squashed

使用上述数据,我只希望它返回2个结果

这是否符合您的要求

SELECT distinct form_id
FROM wp_rg_lead INNER JOIN
     wp_rg_lead_detail
     ON wp_rg_lead.id = wp_rg_lead_detail.lead_id
WHERE cast(date_created as date) >= current_date - interval '7' day;
如果您想要整个任意行,它看起来像是在使用Postgres,因此您可以在上使用
distinct:

SELECT distinct on (form_id) *
FROM wp_rg_lead INNER JOIN
     wp_rg_lead_detail
     ON wp_rg_lead.id = wp_rg_lead_detail.lead_id
WHERE cast(date_created as date) >= current_date - interval '7' day
ORDER BY form_id, id;

您希望它返回哪两个结果?结果表没有意义您选择的是表单_id='7',但它返回的记录中有1个?我正在生成结果,然后计划在进行计数之前对它们进行分组,因此我认为返回哪个结果无关紧要。对使条目唯一的列进行分组,并使用MAX()或者对不重要的列进行其他聚合。您应该使用正在使用的数据库标记问题。是否要返回值列?您是否只希望form_id=7和entry_id=33以及entry_id=22返回一行,我认为这是form_id=7唯一的两个结果?我仍然不确定你想要什么,因为你有两个结果。这不会只带回一行,其中只有表单_id=7吗?您正在选择不同的表单\u id和where is where表单\u id='7'@BS123。对这很奇怪。OP在问题中有这个
where
子句,并建议它产生结果。显然它没有。是的,这个问题让它看起来像是返回了那些结果,但不会,因为where子句form_id=7。