我正在为Android开发一个应用程序,用户可以向其他用户发送一些质询请求,并且在接受质询请求后,我正在更新该表中特定行的状态,现在我应该能够检索那些被接受的要求。我正在成功检索待处理的质询请求,但接受了我无法检索的质询请求。实际上我从那张桌子上得到的所有行都不好。
这就是我的表格challenges
的样子:
id
user_one_id
引用users
表{/ 1}}
user_id
引用user_two_id
表{/ 1}}
users
这就是我正在检索待处理请求的方式:
user_id
这就是我试图检索已接受的请求但未获得好结果的方法:
status
一个注意事项:应该考虑有时候要登录的用户可能是表SELECT u.name, c.user_one_id, c.user_two_id, c.status, c.created_at,
c.isRead, c.id FROM users u, challenges c
WHERE c.user_two_id = ? AND c.status = 0 AND u.id = c.user_one_id
ORDER BY c.created_at ASC
中id为id或id为2的用户,因为他可能是发送该用户的用户请求或接收请求的人。
更新:
MySQL的:
SELECT u.name, c.user_one_id, c.user_two_id, c.status, c.created_at, c.isRead, c.id FROM users u, challenges c
WHERE c.user_one_id = ? AND
c.user_two_id = ? AND c.status = 1 AND u.id = c.user_one_id OR u.id = c.user_two_id
ORDER BY c.created_at ASC
我正在调用函数:
challenges
答案 0 :(得分:1)
这应该以您需要的方式返回结果
SELECT u.name, c.user_one_id, c.user_two_id, c.status, c.created_at, c.isRead, c.id FROM users u, challenges c
WHERE c.user_one_id = ? AND
c.user_two_id = ? AND c.status = 1 AND (u.id = c.user_one_id OR u.id = c.user_two_id )
ORDER BY c.created_at ASC
更新
SELECT u.name, c.user_one_id, c.user_two_id, c.status, c.isRead, c.id FROM users u, challenges c
WHERE u.id = ? AND c.status = 1 AND (c.user_one_id=? OR c.user_two_id=? )
? must be the id you are posting