gpt4 book ai didi

php - 计算第二个表中与第一个表相比的出现次数

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

我有两张表,一张保存我网站贡献者的信息,一张保存有关所贡献照片的信息。

对于网站的管理端,我想使用 php 和 mysql 创建一个表,用于显示所有贡献者,同时还计算每个贡献者可用于该网站的照片数量。

我使用此代码获取姓名列表

  SELECT *  
FROM site_con
ORDER BY surn ASC

然后,我设置了一个循环来列出所有名称,但在该循环中添加了一个查询来使用此代码计算照片的数量

$contributor = $row_rsContrib['con_Code'];

mysql_select_db($database_connGrowl, $connGrowl);
$query_rsCounter = "SELECT COUNT(*) AS Count
FROM site_phts
WHERE photter = $contributor";

$rsCounter = mysql_query($query_rsCounter, $connGrowl) or die(mysql_error());
$row_rsCounter = mysql_fetch_assoc($rsCounter);
$totalRows_rsCounter = mysql_num_rows($rsCounter);

唯一的问题是当“$contributor”不在照片表中时,它会返回错误。

有什么想法吗?

最佳答案

您可以在单个查询中获取贡献者列表和照片数量:

   SELECT sc.*,
COALESCE(x.numPhotos, 0) AS numPht
FROM SITE_CON sc
LEFT JOIN (SELECT sp.photter,
COUNT(*) AS numPhotos
FROM SITE_PHTS sp
GROUP BY sp.photter) x ON x.photter = sc.con_code
ORDER BY ssc.surn

您的查询失败,因为摄影师不一定有贡献 - 上面的查询返回摄影师列表,而那些没有关联照片的摄影师的 numPht 值为零。这是a primer on JOINs ,帮助解释正在使用的 OUTER JOIN。

关于php - 计算第二个表中与第一个表相比的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5052770/

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