【问题标题】:Mysqli select from from two tablesMysqli 从两个表中选择
【发布时间】:2016-04-12 14:05:43
【问题描述】:

我将数据存储在名为“posts”和“cmets”的两个不同表中。 现在我正在使用两个 mysqli_query。

    $q = mysqli_query($db,"SELECT * FROM posts WHERE username='$username'");
    $q = mysqli_query($db,"SELECT * FROM comments WHERE username='$username'");

我可以只用一个 mysqli_query 还是用 3 个表来做这个?

【问题讨论】:

  • 您只是在寻找JOIN 关键字吗?此外,这看起来像您那里的 SQL 注入漏洞。
  • 向我们展示数据库架构和预期结果。请阅读How-to-Ask 这里是START 了解如何提高问题质量并获得更好答案的好地方。

标签: php mysql database mysqli


【解决方案1】:

您可以简单地连接两个表:

$q = mysqli_query($db,"SELECT * FROM posts 
LEFT JOIN comments ON comments.username=posts.username 
WHERE comments.username='$username'");

但是,您似乎没有使用 ID。我建议你创建 ID 自增字段来建立表之间的关系。如果您不明白我的意思,请尝试按照教程进行操作,在我们的一两个教程中,您会学到更多,而不仅仅是跳入编码尝试做事并尝试理解它们是如何工作的,甚至不知道您是否是做对了。

【讨论】:

  • 与where 在同一张表上的左连接成为内连接:) 但是这里不需要左连接,在这种情况下内连接是正确的连接。
  • @mitkosoft,关于连接是真的。 (我要快速做出回应:)根据他分享的信息,我们无法为最好的方法提供建议。我只是想通过一个查询来展示它,但我的主要目标是建议他多学习一些关于 DB 和 SQL 的知识,因为如果 DB 表、字段和关系的结构不合理,那么构建出色的查询毫无意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
相关资源
最近更新 更多