SQL查询只返回唯一的结果
我有以下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 我想修改它,只返回唯一的记录。
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。