仅在一个表中选择用户而不在另一个表中

时间:2012-04-21 00:58:21

标签: mysql

我们有两张桌子:

- 用户 -

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

- 借贷 -

id  from  to  amount
--  ----  --  ------
1   1     2   100

我需要输出Peter没有借钱的用户,而且借款人= 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 个答案:

答案 0 :(得分:2)

这样的东西?

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

您可能希望使用不同的列名,因为我相信它们是mysql中的保留字。