gpt4 book ai didi

php - 计算表中包含 file_name 的行数

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

我正在尝试制作一个页面来显示添加到数据库中的产品。

我需要使用“foreach”来自动显示所有产品。

我被困在一个部分,我需要显示每个产品的下载数量。执行此操作的唯一方法是计算下载表中包含产品文件名的行数。

这是我到目前为止所使用的,但它不起作用:

SELECT * FROM products, file_product, files, downloads WHERE products.id = file_product.product_id AND file_product.file_id = files.id AND files.file_name = downloads.file_name

这些是我的表格:[产品、file_product、文件、下载]

Table: products

Table: file_product

Table: files

Table: downloads

最佳答案

在我看来,你做这件事的方式很困难。我可能建议你看看mysql的分组函数,特别是GROUP BY。您根本不必循环查询,只需循环结果即可。

类似于

SELECT `file_name`, COUNT(*) AS `count` FROM `files` GROUP BY `file_name`;

结果应该如下所示:

---------------------------
| file_name | count|
--------------------------|
| background-2.png | 2 |
| foo.png | 1 |
---------------------------

如果您需要将其限制为仅当前产品的文件,则可以将其JOIN与您的file_product表一起使用,因为我编写的内容将为您提供所有文件产品。

示例:

SELECT
f.`file_name`,
COUNT(*) AS `count`
FROM `files` f
JOIN `file_product` fp
ON fp.`file_id` = f.`id`
JOIN `product` p
ON fp.`product_id` = ?
JOIN `downloads` d
ON d.`file_name` = f.`file_name`
GROUP BY `file_name`;

? 是放置当前产品的产品 ID 的位置。

关于php - 计算表中包含 file_name 的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41572670/

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