大佬教程收集整理的这篇文章主要介绍了mysqli_num_rows 在 2 个表上具有左连接 更新,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有 2 个表,“艺术家”和“歌曲”。当我在网站上打开它时,我需要一个类别中的多个艺术家。
这为我提供了“房子”类别中的所有歌曲。
$query = MysqLi_query($_connect,'SELECT `cat`
FROM `songs`
WHERE `cat` = "house"');
$result = MysqLi_num_rows($query);
echo $result; //ok
现在我测试了这个以显示该类别中的所有艺术家。
“(pass)
在两个表中具有相同的编号,用于使用 USING”
$query = MysqLi_query($_connect,'SELECT `artist`
FROM `artists`
left JOIN `songs` USING (pass)
WHERE `cat` = "house"');
$result = MysqLi_num_rows($query);
echo $result; //fail
输出是歌曲的数量,但我需要“房子”类别中的艺术家数量。如何获取所选类别中的艺术家数量?
我将假设 pass
是一个唯一标识符,相当于 artist.id
artists songs
id id
artist song
pass pass
cat
有几种方法可以做到这一点,具体取决于您想要什么。但是,它的核心是您需要使用 GROUP BY
将结果限制为一位艺术家
修改原始查询
这将为您提供 artist
列中唯一值的结果集。然后您可以使用 mysqli_*
函数。
SELECT artist FROM artists
LEFT JOIN songs USING (pass)
WHERE cat = "HOUSE"
GROUP BY artist;
使用 SQL 返回 COUNT
这将返回计数作为结果集。
SELECT COUNT(*) as numberOfArtists
FROM (
SELECT COUNT(*) FROM songs
WHERE cat="HOUSE"
GROUP BY pass
) as query
回来再看一遍,并在评论中添加更多细节您可以优化查询:
艺术家数量
返回包含一列的结果集:在 HOUSE
类别中拥有歌曲的艺术家数量。
SELECT COUNT(DISTINCT pass) as count FROM songs WHERE cat="HOUSE";
歌曲和艺术家数量
返回包含两列的结果集:HOUSE
类别中歌曲的艺术家数为 artists
,HOUSE
类别中的歌曲数为 {{1} }.
songs
以上是大佬教程为你收集整理的mysqli_num_rows 在 2 个表上具有左连接 更新全部内容,希望文章能够帮你解决mysqli_num_rows 在 2 个表上具有左连接 更新所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。