我有一个mysql查询,它连接5个不同的表以返回产品的特定属性。它应该只返回每个产品一次。但是由于产品可能有多个类别,它为每个类别返回产品一次。
以下是选择:
SELECT DISTINCT pd.name AS pname, p.price AS price, cd.name AS cname, pd.description AS pdescription, pd.language_id AS language_id, pd.product_id AS product_id, p.model AS model, p.sku AS sku, p.upc AS upc, m.name AS brand FROM {$this->prefix}product_description pd LEFT JOIN {$this->prefix}product_to_category pc ON (pd.product_id = pc.product_id) INNER JOIN {$this->prefix}product p ON (pd.product_id = p.product_id) LEFT JOIN {$this->prefix}category_description cd ON (cd.category_id = pc.category_id AND cd.language_id = pd.language_id) LEFT JOIN {$this->prefix}manufacturer m ON (m.manufacturer_id = p.manufacturer_id)
如果给定的产品,比如product_id32被分配到多个类别,它将为每个类别返回一次product_id32,唯一的区别是结果cname
是类别名称。
如果有人可以帮助返工选择只包括每个产品一次,无论类别我将不胜感激的帮助。
将类别恢复为产品的MAX()category_id也会很有帮助,但如果这太过分了,那就没什么大不了的了。
谢谢你。
如果使用“分组依据”,则无论产品类别如何,您都可以获得一次产品:
SELECT DISTINCT
pd.name AS pname,
p.price AS price,
cd.name AS cname,
pd.description AS pdescription,
pd.language_id AS language_id,
pd.product_id AS product_id,
p.model AS model,
p.sku AS sku,
p.upc AS upc,
m.name AS brand
FROM {$this->prefix}product_description pd
LEFT JOIN {$this->prefix}product_to_category pc
ON (pd.product_id = pc.product_id)
INNER JOIN {$this->prefix}product p
ON (pd.product_id = p.product_id)
LEFT JOIN {$this->prefix}category_description cd
ON (cd.category_id = pc.category_id AND cd.language_id = pd.language_id)
LEFT JOIN {$this->prefix}manufacturer m
ON (m.manufacturer_id = p.manufacturer_id)
GROUP BY product_id;
为了获得MAX()类别,可以尝试将此MAX函数应用于所需的列。我猜在这种情况下,它将是MAX(cd.name)作为cname
。
有关GROUP BY的更多信息,您可以浏览以下手册页面:
https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
我的searchBar文本正在更新我的查询,但没有像我预期的那样从Firestore返回数据。 这是我的数据模型中的方法: 这是我的视图控制器中的搜索栏方法: 我想知道我的模型中的是否可能是我的问题的根源。当我时,我键入的会按预期显示在控制台中。但是表视图不会更新具有匹配的单元格,即使它是完全匹配的。
问题内容: 我有一个表,例如,具有ID,State和User_ID的Instrument作为列。 因此,我有这个JPA查询来返回具有匹配的User_ID的所有仪器记录。 它仅返回第一个记录,重复的次数与匹配记录的次数相同。 我在Db中有3条记录,仪器ID为1,2和3 我在hibernate状态下启用了show sql查询,该查询直接在数据库上运行良好,并返回了不同的记录。 hibernate查询:
我有下面的火药结构。因此,我需要根据查询 到目前为止,我已经写了这个,它只适用于一个值。我如何将两者结合起来
假设我已经包装了我的C类和,并且可以通过SWIG生成的模块从Python访问它们: 在Python中,我创建了面向用户的类,它是一个浅层代理,主要添加docstring,并允许IDE对参数名称进行制表符补全: 问题在于,返回类型为,它没有docstring,也不显示参数名称(swig将所有参数公开为)。相反,我希望它提供我自己的浅代理
我有一个表,比如说,仪表,ID、State和User_ID作为列。 所以我有这个JPA查询来返回所有带有匹配User_ID的仪器记录。 它只返回第一条记录,重复次数与有匹配记录的次数一样多。 我有三张Db格式的唱片,仪器编号是1、2和3 我在hibernate上启用了ShowSQL查询,查询直接在数据库上运行良好,并返回不同的记录。 Hibernate查询: 工具实体 不知道我错过了什么。
Firebase查询返回此查询的值 该项由model类捕获 但是,返回null