如果不在另一个表中,则仅从一个表中选择用户

Posted

技术标签:

【中文标题】如果不在另一个表中,则仅从一个表中选择用户【英文标题】:Select users from one table only if not in another 【发布时间】:2012-04-21 00:58:20 【问题描述】:

我们有两张桌子:

-- 用户--

id  name    borrower
--  ------  --------
1   Peter   1
2   John    1
3   Mark    1
4   David   0

-- 借贷--

id 从到金额
-- ---- -- ------
1 1 2 100

我需要输出用户 Peter 没有借出任何钱,并且是 borrowers=1(不包括结果中的 Peter),如下所示:

id  name    borrower
--  ------  --------
3   Mark    1

现在我被这个查询卡住了(不起作用):

SELECT * 
FROM `users` u 
LEFT OUTER JOIN `lendings` l
ON u.`id` = l.`from`
WHERE l.`from` is null
AND u.`id` != 1
AND u.`borrower` = 1

这是一个实际代码的简化示例,以使问题对未来的读者有用/可读。

相关问题:mysql: select emails from one table only if not in another table?

【问题讨论】:

【参考方案1】:

这样的?

SELECT 
    *
FROM
    users
WHERE
    id NOT IN (SELECT 
            id
        FROM
            lendings)
        AND borrower = 1;

您可能希望使用不同的列名,因为我认为 from 和 to 是 mysql 中的保留字。

【讨论】:

出现“操作数应包含 1 列”错误,我已编辑您的查询,现在效果很好。好东西 Lazerblade,谢谢!

以上是关于如果不在另一个表中,则仅从一个表中选择用户的主要内容,如果未能解决你的问题,请参考以下文章

mysql - 如果不在另一个表中,则从一个表中选择,否则从另一个表中选择

根据日期参数从表中选择周末或工作日数据

Codeigniter 选择用户电子邮件不在另一个表中执行时间太长

Mysql:从一个表中选择不在另一个表中的行

如何索引不在另一个表中的值

使用 sqlcommand 填充 reportviewer 但仅从一个表中填充选定的字段如何添加另一个表?