gpt4 book ai didi

mysql - SQL连接相当复杂但有 fiddle

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

抱歉标题不好,但我什至不知道如何解释...

这是 fiddle :http://sqlfiddle.com/#!2/f21e3/5

所以我得到了一个非常基本的产品表和我的数据表(在本例中为 tyds)。

为了简单起见。一个产品可以与零个、一个或多个 tyd 相关。

什么叫做 TYD 是 tyds 表中的四行。一个 tyd 由它的 ref_tyd 标识。

例如,product_2 与 tyds N° 98 && 99 相关。

其他产品(尚未)与 tyds 表相关。

我想得到的是所有产品信息,如果它们与 tyds 相关,则还有随之而来的 tyds 信息。

所以,在我的 fiddle 中,这是我期待的结果:

ID_PRODUCT  NAME            REF_TYD         CNT_USER    ACTION_TYD
1 product_1 NONE 0 NONE
2 product_2 98 1 5
2 product_2 99 1 1
3 product_3 NONE 0 NONE

有什么变化:

现在我得到了与 id_product = 2 相关的两个 TYDS(98 和 99)。

所以现在 CNT_USER 行在两行中返回 1 和 1,而不是将两个不同的东西相加。

对于 tyd N° 98,预期的 action_tyd 为 5

对于 tyd N° 99,预期的 action_tyd 为 1

所以发生的事情是 SQL 只取他找到的第一个 tyd 关系,然后转到下一个 product_id。符合逻辑但不是我想要的:)

当然,我可以首先查询以获取所有产品,然后针对每个产品检查 tyds 表。但是一次拍摄会不会更好?

非常感谢四位的帮助!

最佳答案

好的。

要解决第一个问题(合并两个 product_2 记录),只需更改

GROUP BY id_product

GROUP BY id_product, ref_tyd

.第二个错误也很容易修复 - 你说过 CASE WHEN action_tyd > 0 AND action_tyd < 5 THEN action_tyd END ,所以当然不包括5的action_tyd!只需将其更改为 <= 5。

关于mysql - SQL连接相当复杂但有 fiddle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19790023/

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