我有一个表格,用于存储用户圈子中的人名。 相关字段包括: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)
我当前的脚本从数据库获取所有列表并将其显示在卡片视图中。我要找的结果是,用户只会在其圈子中看到来自用户名的列表。
我尝试过本网站帖子的单个查询的各种组合,但显然缺乏使其正常工作的正确语法。这可以在一个查询中完成,还是我需要一个获得结果然后另一个来迭代结果?
答案 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"