MySQL 查询所有尚未关注或尚未刷卡的用户

标签 mysql sql

所以我有下表

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/

相关文章:

php - 从php到ajax的返回值成功和错误

mysql - MS Access 中的 SQL 查询产生语法错误

mysql - 优化不存在的 SQL 查询

sql - 使用 Vbscript 处理大型 csv(500k 记录)并将其导入 SQL Server 的最佳方法是什么?

sql - 表 "ap"中有一个名为 "session"的列,但无法从这部分查询中引用它

javascript - SQL 模式与 NoSQL 命名空间

java - LEFT JOIN 中的 Hql 错误 with-clause

mysql - 根据订单更新库存表数量

java - JDBC驱动程序实现和类加载

mysql - 是否可以添加到 mysql 单元格中的现有值?