【问题标题】:Get count of a table based on info in a different table根据不同表中的信息获取表的计数
【发布时间】:2018-03-07 01:46:20
【问题描述】:

我有以下表格:

posts: title, user, date, state, city, blog
user: username, name, password, email, city, state, private

我想做的是从posts.state = user.state和user.private ='public'的帖子中获取记录总数。我尝试了以下我知道是错误的,但我认为我已经接近了。只是想找出正确的语法。

 $sqlposts = "select p.*, u.state, u.private
              from posts p inner join user u on p.state = u.state
              where u.private = 'public'";

我一共保存了171条记录,这段代码只返回52条记录。

感谢任何帮助。谢谢

【问题讨论】:

  • 此查询似乎完全符合您的要求。您能否向我们展示示例数据以及预期输出,然后指出您认为输出错误的地方?

标签: php sql join


【解决方案1】:
  1. “我总共保存了 171 条记录?”有多少“私人”=公共? 52?
  2. 您使用了“内部联接”,它只发现记录都存在于 2 个表中,并将排除存在于 2 个表之一中的记录。

【讨论】:

  • 感谢您的回复。现在,所有用户都设置为公开,因此应该会看到所有 171 条记录,但在计数时,只得到 52 条。
【解决方案2】:

这可能对你有帮助

$sqlposts = "select p.*, u.state, u.private
              from posts p left join user u on p.state = u.state

【讨论】:

  • 感谢您的回复。当我更改为左连接时,得到了相同的响应。
  • 试试这个。您需要从 where 子句中删除 u.private = 'public'";。如果您获得正确的数据,请告诉我。如果您有任何其他问题,我们随时为您服务。
猜你喜欢
  • 2019-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 2018-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多