如果不在另一个表中,则仅从一个表中选择用户
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 - 如果不在另一个表中,则从一个表中选择,否则从另一个表中选择