Php 在msqli中连接2个表
如何计算特定用户登录的帖子数。例如,当id为3的用户登录时,它应该向我显示4篇文章 我已经做了总职位计数:Php 在msqli中连接2个表,php,mysqli,Php,Mysqli,如何计算特定用户登录的帖子数。例如,当id为3的用户登录时,它应该向我显示4篇文章 我已经做了总职位计数: <?php $post_query1 = "SELECT count(*) AS total FROM posts "; $post_result1 = mysqli_query($db, $post_query1); $post1 = mysqli_fetch_array($post_result1); ?> 您只需使用简单的联接即可 SELECT count(*)
<?php
$post_query1 = "SELECT count(*) AS total FROM posts ";
$post_result1 = mysqli_query($db, $post_query1);
$post1 = mysqli_fetch_array($post_result1);
?>
您只需使用简单的联接即可
SELECT count(*)
FROM USER u,
post p
WHERE p.id_user = u.id_user
AND u.id_user = 3
请尝试以下示例:
select count(*) as total from user as u inner join post as p on p.id_user = u.id_user AND u.id_user = 3
如果您只想获取特定用户的帖子数量,比如id=3的用户,那么您的查询应该是:
$query = "SELECT count(*) AS total FROM posts WHERE id_users = 3";
但是,如果您想同时获得posts计数以及用户信息和其他post信息,则必须在用户
和posts
表上运行联接查询。您的查询现在将变成:
$query = "SELECT u.*, p.*, count(p.id_posts) FROM users AS u JOIN posts AS p ON u.id_users = p.id_users WHERE p.id_users = 3";
一些有用的注释
p.*
-*
是一个通配符,表示获取posts
表中的所有列u.*
-*
是一个通配符,表示获取users
表中的所有列以p-的形式发布
,因为
用于别名。因此,我们为posts
表提供了一个临时名称。以下是SQL中不同类型的连接:
(内部)联接:返回两个表中具有匹配值的记录
左(外)联接:返回左表中的所有记录,以及右表中匹配的记录
右(外部)联接:返回右表中的所有记录,以及左表中匹配的记录
完全(外部)联接:当左表或右表中存在匹配项时,返回所有记录
注意:只有在外键的帮助下才能连接两个/多个表。没有外键连接两个或多个表是没有意义的
参考文献1:
参考文献2:
根据问题,您要求加入表格的内容是什么
查询:
SELECT * FROM TABLE 1 JOIN TABLE 2 ON TABLE1.id = TABLE2.id WHERE TABLE2.ID=3
请将TABLE1和TABLE2
替换为要联接的表,并将id
替换为表中指定的外键
希望这对您将来编写自己的代码有所帮助。快乐编码:)在WHERE子句中使用条件(你不需要加入):
选择count(*)作为id\u users=3的帖子的总数