【问题标题】:Need help creating a single Mysql query需要帮助创建单个 Mysql 查询
【发布时间】:2016-03-31 21:17:37
【问题描述】:

我有一个表格,用于存储用户圈子中的人名。 相关字段为:username & circleMember

我有另一个表,用于存储由单个用户创建的所有列表。

我的应用程序向提供活动用户用户名的服务器发送请求。

我需要一个查询,它将从 circle circleMember WHERE username = ?username 然后从列表中 SELECT * WHERE username =(第一次查询的结果)用户名、circleMember 组合存储在单独的行中,因此会有多行每个用户名。

table circle
 - circleId (int)
 - username (varchar) 
 - circleMember (varChar)

table listings
- listingId (int)
- username (varchar) 
- image (varchar) 
- title (varchar) 
- price (decimal 15,2) 
- description (varchar) 
- location(varchar)

我当前的脚本从数据库中获取所有列表并在卡片视图中显示它们。我正在寻找的结果是用户只会看到他们圈子中用户名的列表。

我已经尝试了来自该站点上帖子的单个查询的各种组合,但显然缺乏使其工作的正确语法。这可以在单个查询中完成,还是我需要一个来获取结果,然后另一个来遍历结果?

【问题讨论】:

  • 帮助我们帮助您 - 请发布您的表结构、一些示例数据以及您希望为该示例获得的结果。
  • 什么是circleMember?布尔值、整数、字符串?
  • 您研究的关键字:子选择,加入
  • 更新了关于字段类型详细信息的问题。以及我需要查询返回的内容的描述。
  • 这是一个简单的JOIN,可以在基本的 MySQL 级别学习...我建议您在进一步尝试在数据库环境中开发应用程序之前重新访问 MySQL 教程。

标签: php mysql


【解决方案1】:

这是你的意思吗?

SELECT * FROM listings
JOIN circle ON circle.circleMember = listings.username 
WHERE circle.username = "my_user_name"

【讨论】:

  • 就是这样!!非常感谢您的帮助。已接受答案!
【解决方案2】:

所以我想你想要一个简单的JOIN

SELECT * FROM circle 
JOIN listings ON circle.username = listings.username 
WHERE circle.circleId = (SELECT circleId FROM circle WHERE username = <username> limit 1)

&lt;username&gt; 被替换为一些带引号的字符串。

http://dev.mysql.com/doc/refman/5.7/en/join.html

不知道 'circle circleMember 应该是什么

【讨论】:

  • 我编辑了带有表格详细信息的问题,希望对您有所帮助!
  • @SkynetHasYou 我仍然不清楚。如果这个答案没有帮助,我可以删除它。
  • 您的代码正在返回活动用户创建的所有列表我需要的是返回活动用户“circleMembers”创建的所有列表的代码
  • 更新仍然返回活动用户列表,没有其他。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多