Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 分组查询,从每个组的字符串中选择最大匹配的单个记录_Mysql_Select_Join - Fatal编程技术网

Mysql 分组查询,从每个组的字符串中选择最大匹配的单个记录

Mysql 分组查询,从每个组的字符串中选择最大匹配的单个记录,mysql,select,join,Mysql,Select,Join,我有两张桌子。 表1:wp_pc_产品 feed_product_name id_merchant sony xperia c3 fkt nokia lumia fkt samsung galaxy fkt sony xperia c3 snd nokia lumia snd samsung galaxy snd 表2:wp_pc_产品_商户

我有两张桌子。 表1:wp_pc_产品

feed_product_name     id_merchant
    sony xperia c3        fkt
    nokia lumia           fkt
    samsung galaxy        fkt
    sony xperia c3        snd
    nokia lumia           snd
    samsung galaxy        snd
表2:wp_pc_产品_商户

slug     image
fkt      logo1.png
snd      logo2.png
这两个表之间的关系是,wp_pc_产品中的id_商户和wp_pc_产品中的slug商户在第二个表中的记录相同但不同

我现有的查询是

select p.feed_product_name,p.id_merchant,m.image from wp_pc_products p JOIN wp_pc_products_merchants m ON m.slug=p.id_merchant where (feed_product_name like'sony%' or feed_product_name like'%xperia%' or feed_product_name like'%c3%') and (p.price BETWEEN "629.3" and "1168.7"
如果在此查询结束时使用group by子句作为(group by id_merchant),则查询不会给出预期结果

我也尝试过这个查询,它工作得很好,但和我在上面的查询中想要的一样

SELECT  wp_pc_products.*,wp_pc_products_merchants.image FROM wp_pc_products JOIN wp_pc_products_merchants ON wp_pc_products.id_merchant = wp_pc_products_merchants.slug  WHERE feed_product_name LIKE '%sony%' and feed_product_name LIKE '%xperia%' and feed_product_name LIKE '%c3%' group by id_merchant
我的预期结果是:

sony xperia c3    fkt     logo1.png
sony xperia c3    snd     logo2.png

下面是如何使用技术组最大化


您是否有
wp\u pc\u products
表的主键?是的,我有一个列id\u product,它是自动递增的数字Group BY将为每个id\u商户返回一行。它返回的其他字段应该是聚合字段,如果每个id_商户有多个产品,则不确定返回哪一个。
select 
wpp1.feed_product_name,
wpp1.id_merchant,
wpm.image
from wp_pc_products wpp1
join (
  select min(id_product) as id_product,id_merchant
  from wp_pc_products group by id_merchant
)wpp2 on wpp2.id_product = wpp1.id_product
join wp_pc_products_merchants wpm on wpm.slug = wpp1.id_merchant