Php 在msqli中连接2个表

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(*)

如何计算特定用户登录的帖子数。例如,当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(*)
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的帖子的总数