gpt4 book ai didi

mysql - SQL MYSQL 多表查询连接

转载 作者:行者123 更新时间:2023-11-29 04:53:21 26 4
gpt4 key购买 nike

好吧,在我花了几天时间想明白之前,我从不在这里发帖我自己出去。

这个非常难。我会很惊讶并且也对解决这个问题的人感到敬畏。

另请注意:我在 PHP 中执行此操作,不关心有多少查询或循环我需要 make 来完成这个 .. 所以如果多个查询或 php 循环可以请务必提供帮助,请提出建议。谢谢

更新:为了简化这个问题,如果您可以使用像 %White Gold% insetad 和 %catFilter.value% 这样的 availMetals 来解决它,我认为它会更容易。

我可以使用 PHP 循环来完成其余的工作。

感谢所有花时间浏览的人。

我有 3 个表,其中包含以下字段:

catFilter - (id, catTypeId, value)
products - (id, availMetals)
prodFilter - (id, catFilterId, productId)

和下面的关系

products.id = prodFilter.productId
catFilter.id = prodFilter.catFilterId

我需要获取三个数据作为最终结果:

catFilter.id (also could be prodFilter.catFilterId)
catFilter.value

到目前为止我可以得到那两个...我需要第三个..

A COUNT OF ..  All Products who have an availMetals like
of %White Gold% and also has catTypeId = 1

这是最终列表的样子......

catFilter.value - 产品计数

classic - 0
rings - 0
sets - 1
stones - 5
three - 0
halo - 3

等等......等等......

这是表格的一些示例数据

products

id - availMetals
111 - White Gold
112 - White Gold, Yellow Gold
113 - White Gold
114 - White Gold
115 - White Gold
116 - White Gold, Platinum, Palladium


prodFilter

productId - catFilterId
111 - 43
111 - 12
111 - 48
111 - 47
112 - 12
112 - 51
112 - 48
113 - 12
113 - 51
113 - 48
114 - 12
114 - 51
114 - 48
115 - 12
115 - 48
116 - 12
116 - 51

catFilter
id - catTypeId - value
1 - 1 - Classic
50 - 1 - Rings
47 - 1 - Sets
48 - 1 - Stones
49 - 1 - Three
51 - 1 - Halo

最佳答案

尝试类似的东西:

SELECT cf.id, cf.value, COUNT(p.id)
FROM catFilter cf
INNER JOIN prodFilter pf ON pf.catFilterId = cf.id
INNER JOIN products p ON p.id = productId
WHERE cf.catTypeId = 1 AND p.availMetals LIKE CONCAT('%', cf.value, '%')
GROUP BY cf.id

关于mysql - SQL MYSQL 多表查询连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9207750/

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