所以我有下表
USERS
user_id /name/bio
FOLLOWERS
user_id_fk/following_uid_fk
SWIPED
user_id_fk/ swiped_on_uid_fk
我想查询用户尚未关注并且过去尚未滑动过的所有用户,但我在想象它会如何进行时遇到了一些麻烦。
这是我的第一次尝试:
SELECT a.user_id, a.name
FROM users AS a, FOLLOWERS AS b, SWIPES AS c
WHERE a.user_id != b.swiped_on_user
AND b.user_id_fk = '1'
AND c.user_id_fk = '1'
AND c.SWIPPED_user_id != a.user_id
LIMIT 0 , 30
最佳答案
我认为您需要这样的查询:
SELECT
u.user_id, u.name
FROM
users As u
WHERE
NOT u.user_id IN (
SELECT
user_id_fk
FROM
swiped)
AND
NOT u.user_id IN (
SELECT
user_id_fk
FROM
followers)
LIMIT 0, 30;
关于MySQL 查询所有尚未关注或尚未刷卡的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30837048/