在1个字段中仅选择1行,其中包含2行

时间:2019-04-25 06:17:23

标签: php mysql laravel

从数据库中获取数据时出现问题。

问题是当我想从1个字段中仅获取1行时。

示例:

在表ms_file中,我有2个字段(product_id,路径)

  1. .... // dir / bg.1
  2. .... // dir / bg.2

具有相同的product_id。

如果我使用联接到该表(ms_file),则在使用group by时出现错误

  

list不在GROUP BY子句中,并且包含未聚合的列...。在功能上不依赖于GROUP BY子句中的列;

因为此查询,我们获得了具有相同product_id的不同2行

如何解决?

select ms_product.*, ms_file.path, users.name as users_name, ms_subcategory.name as subcategory from ms_product 
        left join users ON users.id = ms_product.users_id
        left join ms_subcategory ON ms_subcategory.id = ms_product.subcategory_id
        left join ms_file ON ms_file.product_id = ms_product.product_id
        where ms_product.status = "A" group by ms_product.product_id order by ms_product.created_at desc LIMIT 4

如果我在上面的此查询中未输入GROUP BY,则没有错误。但是此查询将显示ms_file中的2行

如果我在上述查询中使用GROUP BY,则报错。

1 个答案:

答案 0 :(得分:0)

已解决,我使用concat组并通过php爆炸以获得第一个数组。