需要帮助创建单个Mysql查询

时间:2016-03-31 21:17:38

标签: php mysql

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

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

我的应用向服务器发送请求,提供有效用户的用户名。

我需要一个查询,它将从circle circleMember WHERE username =?username然后SELECT from listings * 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)

我当前的脚本从数据库获取所有列表并将其显示在卡片视图中。我要找的结果是,用户只会在其圈子中看到来自用户名的列表。

我尝试过本网站帖子的单个查询的各种组合,但显然缺乏使其正常工作的正确语法。这可以在一个查询中完成,还是我需要一个获得结果然后另一个来迭代结果?

2 个答案:

答案 0 :(得分:0)

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

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

其中<username>被替换为一些带引号的字符串。

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

不知道'circle circleMember应该是什么

答案 1 :(得分:0)

这是你的意思吗?

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