在msqli中加入2个表

时间:2018-09-05 08:30:23

标签: php mysqli

table posts

table users

我将如何为特定的登录用户计数帖子,例如,登录ID为3的用户时,应该显示4条帖子 我已经按照帖子总数进行了

GenericXmlApplicationContext context = new GenericXmlApplicationContext();
context.load("classpath:example-factory.xml");
context.refresh();

4 个答案:

答案 0 :(得分:0)

您只需要使用简单的联接即可。

SELECT count(*)
FROM USER u,
          post p
WHERE p.id_user = u.id_user
AND u.id_user = 3

答案 1 :(得分:0)

请尝试以下示例:

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

答案 2 :(得分:0)

如果您只想获取特定用户的帖子数,例如id = 3的用户,则查询应为:

$query = "SELECT count(*) AS total FROM posts WHERE id_users = 3";

但是,如果要同时获取帖子数以及用户信息和其他帖子信息,则必须在usersposts表上都运行联接查询。您的查询现在将变为:

$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表中的所有列
与{-posts相同的AS用于别名。因此,我们给posts表一个临时名称。

答案 3 :(得分:0)

以下是SQL中JOIN的不同类型:

(INNER)JOIN:返回两个表中具有匹配值的记录

向左(外部)连接:从左侧表返回所有记录,并从右侧表返回匹配的记录

右(外)联接:从右表返回所有记录,并从左表返回匹配的记录

完全(外部)联接:在左表或右表匹配时返回所有记录

  

注意:仅在外键的帮助下,您必须加入两个/多个表。没有外键是没有意义的,无法联接两个或多个表

参考文献1:https://www.w3schools.com/sql/sql_join.asp

参考文献2:https://www.tutorialspoint.com/mysql/mysql-using-joins.htm

根据问题,您要求加入表的内容

查询:

SELECT * FROM TABLE 1 JOIN TABLE 2 ON TABLE1.id = TABLE2.id WHERE TABLE2.ID=3

请将TABLE1 & TABLE2替换为要连接的表,并将id替换为您在表中指定的外键。

希望如此对您将来编写自己的代码可能会有所帮助。快乐编码:)