这是我的查询,用于查找用户标识2的ID,我想运行查询,查找userid = 2且金额> 1的条目,而用户标识1没有该标识
SELECT id, amount FROM collection WHERE userid='2' AND amount>1
我不确定如何在SQL查询中执行if语句,但必须有一种方法可以轻松地执行此操作。
任何帮助将不胜感激
答案 0 :(得分:1)
如果我理解正确,您需要具有用户ID = 2和金额>的用户列表。 1.此列表应忽略ID不在用户ID = 1
中的记录示例输入/输出:
ID UserID Amount Returned?
1 2 0 No (Amount 0)
2 2 10 Yes
3 1 10
3 2 5 (No, since ID =3 exists with Userid = 1)
以下查询可以帮助您。
SELECT C.ID, C.AMOUNT
FROM COLLECTION C
WHERE C.USERID = 2 AND C.AMOUNT > 1
AND C.ID NOT IN
( SELECT D.ID
FROM COLLECTION D
WHERE D.USERID = 1
);
答案 1 :(得分:0)
"其中userid = 2且金额> 1且用户ID 1没有该ID"
您可以使用NOT EXISTS
:
SELECT id, amount
FROM collection c
WHERE c.userid = '2'
AND c.amount > 1
AND NOT EXISTS
(
SELECT 1 FROM collection c2
WHERE c2.userid = '1'
AND c.id = c2.id
)
答案 2 :(得分:0)
SELECT id, amount
FROM collection
WHERE userid='2' AND amount > 1 AND
NOT id in (SELECT id FROM collection WHERE userid='1' AND amount > 1)
我不确定这是你的数据库是如何工作的,但这就是我将如何解决它。