SQL - 不同的子查询

时间:2017-11-19 16:42:27

标签: sql select subquery distinct

有人可以解释如何进行此查询:

我必须选择所有没有重复的字段" idPrdodotto"

That's the table

那是我的不工作的问题:

SELECT *
FROM riempie1
WHERE idProdotto IN (SELECT DISTINCT idProdotto
                     FROM riempie1
                    );

3 个答案:

答案 0 :(得分:3)

你似乎在学习SQL,所以我会有点冗长。

SELECT DISTINCT子查询中的IN什么都不做。什么都没有。 IN隐式执行SELECT DISTINCT,因为如果(1, 2, 3)中存在某些内容,那么该内容位于(1, 1, 1, 2, 2, 3)中。

您要做的是计算表中idProdotto出现的次数。您希望idProdotto值只显示一次。

一种典型的方法是使用GROUP BYCOUNT(*)HAVING

答案 1 :(得分:0)

您无法在子查询中使用distinct。而不是你可以这样做

Select distinct column names,.. from table1 where column name= select statement;

答案 2 :(得分:0)

这样做:

SELECT riempie1.* FROM riempie1
join (select idProdotto from riempie1 group by riempie1 having count(riempie1)=1) riempie2
on riempie1.idProdotto = riempie2.idProdotto