Php 有人能看一下这个MySQL左连接语句吗?它';It’没有返回我想要的所有数据
我正在创建一个项目网站,它是视频游戏的基本分类广告。目前我有两个表,类别和分类Php 有人能看一下这个MySQL左连接语句吗?它';It’没有返回我想要的所有数据,php,mysql,Php,Mysql,我正在创建一个项目网站,它是视频游戏的基本分类广告。目前我有两个表,类别和分类 分类广告表中的行: id(主键) 头衔 内容 接触 日期 类别(FK) 类别表中的行: id(主键) 名字 我希望它返回每个类别(目前有3-xbox,playstation,wii)和每个类别中的广告数量(目前每个类别中有1个) 我遇到的问题是,它只返回一个类别(第一个类别是xbox)并显示“3个广告”(所有类别的广告总数) 我相信这个解决方案很简单,我只需要另一双眼睛就可以了。提前谢谢!我正在使用的PHP函数发
分类广告表中的行: id(主键) 头衔 内容 接触 日期 类别(FK) 类别表中的行: id(主键) 名字
我希望它返回每个类别(目前有3-xbox,playstation,wii)和每个类别中的广告数量(目前每个类别中有1个) 我遇到的问题是,它只返回一个类别(第一个类别是xbox)并显示“3个广告”(所有类别的广告总数) 我相信这个解决方案很简单,我只需要另一双眼睛就可以了。提前谢谢!我正在使用的PHP函数发布如下:
function list_count()
{
$q="SELECT COUNT(tA.id) as classifieds, tC.name as name, tC.id as id
FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
ORDER BY tC.name";
$result=mysql_query($q);
$cats=array();
while($cat=mysql_fetch_array($result)) {$cats[]=$cat;}
return $cats;
}
如果在select中使用count,则只返回一行
function list_count()
{
$q="SELECT tC.name as name, tC.id as id
FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
ORDER BY tC.name";
$result=mysql_query($q);
$cats=array();
$numberOfRows = mysql_num_rows($result);
while($cat=mysql_fetch_array($result)) {$cats[]=$cat;}
return $cats;
}
您可以使用mysql\u num\u rows
获取返回的行数
function list_count()
{
$q="SELECT tC.name as name, tC.id as id
FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
ORDER BY tC.name";
$result=mysql_query($q);
$cats=array();
$numberOfRows = mysql_num_rows($result);
while($cat=mysql_fetch_array($result)) {$cats[]=$cat;}
return $cats;
}
如果在select中使用count,则只返回一行
function list_count()
{
$q="SELECT tC.name as name, tC.id as id
FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
ORDER BY tC.name";
$result=mysql_query($q);
$cats=array();
$numberOfRows = mysql_num_rows($result);
while($cat=mysql_fetch_array($result)) {$cats[]=$cat;}
return $cats;
}
您可以使用mysql\u num\u rows
获取返回的行数
function list_count()
{
$q="SELECT tC.name as name, tC.id as id
FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
ORDER BY tC.name";
$result=mysql_query($q);
$cats=array();
$numberOfRows = mysql_num_rows($result);
while($cat=mysql_fetch_array($result)) {$cats[]=$cat;}
return $cats;
}
使用聚合(如
count
)时,如果希望返回多个结果,则需要提供一个分组依据
SELECT COUNT(tA.id) as classifieds, tC.name as name, tC.id as id
FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
GROUP BY tC.name, tC.id
ORDER BY tC.name
这将返回每个类别(id/名称)和分类的计数。当使用聚合(如count
)时,如果要返回多个结果,则需要提供一个分组依据
SELECT COUNT(tA.id) as classifieds, tC.name as name, tC.id as id
FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
GROUP BY tC.name, tC.id
ORDER BY tC.name
这将返回每个类别(id/名称)以及分类的数量。就是这样!非常感谢你!就这样!非常感谢你!看来我只是需要一个小组。见上面的斯盖德斯的回答,这对我很有效。谢谢你的帮助!看来我只是需要一个小组。见上面的斯盖德斯的回答,这对我很有效。谢谢你的帮助!