gpt4 book ai didi

mysql - 三表连接问题与计数

转载 作者:行者123 更新时间:2023-11-29 14:31:06 26 4
gpt4 key购买 nike

我正在尝试生成产品、classid、optionid、“images”的列表(从四个表)。每个产品可以有多个ClassID(一对多),每个ClassID可以有多个OptionID,每个OptionID可以有很多很多图像。最后,对于图像表(xcart_images_D),我想计算()每个productID有多少图像。如何在不使用多个语句的情况下有效查询所有这些信息?

这是每个表的基本信息

xcart_products
+ productid*
+ product
xcart_classes -
+ classid*
+ productid (xcart_products.productid)
xcart_class_options -
+ optionid*
+ classid (xcart_classes.classid)
+ option_name
xcart_images_D -
+ imageid*
+ optionid (xcart_class_options.optionid)
+ id (xcart_products.productid)

* primary/foreign key

我有三个表连接工作,但我无法让 xcart_images_D 表工作,我也不明白如何完成计数。有人能指出我正确的方向吗?

这里值得的是我的三表连接

SELECT xp.productid, xp.product, xc.classid, xco.optionid, xco.option_name
FROM xcart_products xp
JOIN xcart_classes xc ON xp.productid = xc.productid and xc.class = 'Color'
JOIN xcart_class_options xco ON xc.classid = xco.classid
WHERE xc.class = 'Color'
ORDER by xp.productid DESC

当我尝试添加以下行时,结果数量减少了大约一半。

 JOIN xcart_images_D xi ON xi.optionid = xco.optionid
GROUP BY xp.productid

最佳答案

SELECT xp.productid, count(xi.imageid)
FROM xcart_products xp
INNER JOIN xcart_classes xc ON xp.productid = xc.productid AND xc.class = 'Color'
INNER JOIN xcart_class_options xco ON xc.classid = xco.classid
INNER JOIN xcart_images_D xi ON xi.optionid = xco.optionid
GROUP BY xp.productid
ORDER by xp.productid DESC

关于mysql - 三表连接问题与计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020468/

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