我想创建一个查询,从表中选择所有行,除非另一个表中的行具有与用户登录相同的id,并且在另一列中具有相同的值。
Table1
id | value
=================
1 | 10
2 | 20
3 | 30
4 | 40
5 | 50
6 | 60
-
Table2
id | user_ids | another_column
=========================================
1 | 2 | 30
2 | 4 | 50
3 | 4 | 60
因此,如果Table2.user_ids =(loggedin userid)并且同时Table1.value = Table2.another_column - 那些行不应该在结果中输出。
如果我们说我们有一个id为4的用户,那么用户不应该看到Table1中的row5或row6,因为值匹配
我应该使用某种子查询还是加入sql?
答案 0 :(得分:0)
从上面的示例中获取ID为4的用户:
select * from Table1
where value not in (
select another_column
from Table2
where user_ids = 4
);
答案 1 :(得分:0)
select id, value from t1 where value not in (select another_column from t 2 where userid = 4)
类似的东西