伙计我有下表名为产品的列名称是:
Product_ID
Category_ID
Product_Name
Brand
Quantity
Price
我糟透了sql查询,但是我需要一个查询,我可以使用它来获取Brand =“something”的所有产品但我不想重复,因为产品可以在多个Category_ID中 我尝试了以下但是没有用。
SELECT *
FROM products
WHERE Brand="Crystal Clear"
GROUP BY Category_ID
HAVING count(Product_Name)=1
答案 0 :(得分:1)
假设重复的产品具有匹配的Product_ID
s
SELECT DISTINCT Product_ID, Product_Name, Quantity, Price
FROM products
WHERE Brand="Crystal Clear"
可能会为您提供所需的数据,但如果您对数据库的结构有任何控制权,我强烈建议您完全删除Category_ID
列并将其替换为关系集,以便您不会复制products
行只是为了在多个类别中获得相同的产品。从表结构中删除重复可能性的过程称为规范化,the wikipedia entry是一个不错的入门。
根据对其他答案的评论,我推断OP的Product_ID
列是唯一的主键,不同类别的重复产品只能通过匹配Product_Name
来识别,这将使查询有点复杂
SELECT Product_Name, SUM(Quantity), MAX(Price)
FROM products
WHERE Brand="Crystal Clear"
GROUP BY Product_Name
答案 1 :(得分:0)
我可能会像{realnumber3012那样使用SELECT DISTINCT
,但你可以使用分组:
SELECT product_id, product_name
FROM products
WHERE Brand="Crystal Clear"
GROUP BY Product_id, product_name