gpt4 book ai didi

MySQL 搜索查询 INNER JOIN 将 id_image 字段结果限制为每个 id_product 1 个

转载 作者:行者123 更新时间:2023-11-29 13:05:25 26 4
gpt4 key购买 nike

我正在为网上商店创建搜索功能并显示结果,我尝试在多个表上创建 SQL 查询。此查询有效:

SELECT ps_product_lang.id_product , ps_product_lang.name as product_name ,
ps_product_lang.description_short,
ps_product_lang.link_rewrite as product_link_rewrite ,
ps_product_lang.meta_title , ps_product.reference ,
ps_product.id_category_default , ps_product.on_sale , ps_product.price ,
ps_category_lang.name as category_name ,
ps_category_lang.link_rewrite as category_link_rewrite , ps_image.id_image
FROM ps_product_lang
INNER JOIN ps_product
INNER JOIN ps_category_lang
ON ps_product.id_category_default=ps_category_lang.id_category
INNER JOIN ps_image
ON ps_product_lang.id_product=ps_image.id_product
WHERE ps_product_lang.name LIKE '%simone%' OR
ps_product.reference LIKE '%simone%' ORDER BY ps_product_lang.id_product ASC

在搜索结果中我只想显示一张图像。但通过上面的查询,我获得了所需 id_product 的所有 id_images。我尝试了不同的方法来限制它,例如:

ON ps_product_lang.id_product=ps_image.id_product = (SELECT id_image FROM ps_image LIMIT 1)

但是无论我尝试什么,我都不再得到任何结果,或者我的语法有错误。谁能插入我朝正确的方向前进?

最佳答案

如果您只想为每个产品一张图像,请使用简单的子选择来获取一个图像 ID,例如最大图像 ID。这意味着:完全删除 ps_image 的连接。

SELECT 
ps_product_lang.id_product , ...
ps_category_lang.link_rewrite as category_link_rewrite ,
(
select max(id_image)
from ps_image
where id_product = ps_product_lang.id_product
) as id_img
FROM ps_product_lang
...

关于MySQL 搜索查询 INNER JOIN 将 id_image 字段结果限制为每个 id_product 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22783691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com