gpt4 book ai didi

MySQL 查询一对多关系且仅返回一行

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

情况
我有一个用于存储产品的表 userproducts ,还有一个用于存储产品的所有竞争对手的表 offers 。另外,我还有另一个名为 sellers 的表,它存储有关卖家/竞争对手的信息。

我想要什么
我现在希望可以搜索我的产品,并获取最低价格的信息以及该竞争对手的名称

我有什么
到目前为止,我可以说它会给我最低价格和一个 asin(=产品)的名称。在这里。

SELECT (o.price+o.shipping) AS lowest_price,
s.seller_name AS seller_name
FROM offers AS o
LEFT JOIN sellers AS s
ON (o.userinfos_id = s.userinfos_id
AND o.marketplace_id = s.marketplace_id
AND o.merchant_id = s.seller_id)
WHERE o.userinfos_id = ?
AND o.marketplace_id = ?
AND o.asin = ?
AND o.merchant_id != ?
ORDER BY
(o.price+o.shipping) ASC
LIMIT 1)

如果您在此处发现任何性能泄漏,请随时报告

缺少什么
但缺少的是我如何才能为我所有的人获取这些信息。不只是为了一个人。我看不到缺失的链接。我尝试了一个解决方案,将其设置为子查询并将其放入 SELECT 中,如下所示:

SELECT userproducts.*, 
( "HERE the query from the top )
FROM userproducts
WHERE ...

但结果却是 MySQL 回复了我这个错误消息

SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)

我只想搜索我的产品,mysql 应该还给我返回有关lowest_price 的信息。你能帮我完成查询吗?

最佳答案

SELECT userproducts.*, 
topQuery.*
FROM userproducts,
( "HERE the query from the top ) topQuery
WHERE ..

关于MySQL 查询一对多关系且仅返回一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22062211/

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