gpt4 book ai didi

php - AND 语句内的 WHERE 查询? PHP/PDO/MySQL

转载 作者:行者123 更新时间:2023-11-29 08:30:05 26 4
gpt4 key购买 nike

我的网站上有 2 个表,一个 users表和一个user_friendships每个表的结构如下...

用户

id  |  user_id  |  credits_bank  |  credits_offered

用户友谊

id  |  user_id  |  user_followed_id

当我的用户登录时,他会看到网站上其他用户的列表 - 其他用户的列表是存储在 users 中的用户。表并在 credits_bank 中具有更大的值表比 credits_offered表。

创建友谊后, session 用户 id存储在user_friendshipsuser_friendships表中也存储了他关注的另一个成员的id列 user_followed_id 下的表格.

问题是我现在需要一个查询来返回所有已移动 credits_bank 的用户比credits_offered以及尚未在 user_frienships 中的用户表与 session 用户在同一记录中。

我目前正在使用...

SELECT DISTINCT u.*
FROM users u
LEFT JOIN user_friendships uf ON u.user_id = uf.user_followed_id
WHERE u.user_id <> ?
AND u.credits_offered <= credits_bank
AND uf.user_followed_id IS NULL
<小时/>

更新

我想查看 credits_bank 的用户列表大于 credits_offered 的值我只想显示它们,如果它们不存在于我的 user_friendships 的记录中表与我的 session 用户位于同一行。

用户

id  |  user_id  |  credits_bank  |  credits_offered
___________________________________________________
1 123 10 2
2 231 6 3
3 312 6 5
4 213 2 1

用户友谊

id  |  user_id  |  user_followed_id
___________________________________________________
1 123 231
2 123 312

结果

如果 session user_id = 123 则...

user_id 231 and 312 WOULDN'T show as they are in the user friendships table alongside session user id
user_id 213 WOULD show as they have more credits_bank than credits_offered and arent in friendships table

如果 session user_id 为 312,那么他会看到所有结果,因为他不是 user_friendships 表中任何人的 friend ...

最佳答案

据我所知,你已经很接近了。如果当前用户的用户 ID 称为 SESS_USER_ID,那么类似的内容应该适合您;

SELECT DISTINCT u.*
FROM users u
LEFT JOIN user_friendships uf
ON uf.user_followed_id = u.user_id
AND uf.user_id = SESS_USER_ID
WHERE u.credits_offered <= credits_bank
AND uf.user_followed_id IS NULL
AND u.user_id <> SESS_USER_ID

(请注意,为了简单起见,SESS_USER_ID 在查询中使用了两次)

An SQLfiddle to test with .

关于php - AND 语句内的 WHERE 查询? PHP/PDO/MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16874292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com