2013-03-20 51 views
0

联接我有两个表,network_permissions和device_permissions这样的:考虑元素是只在一个表从MySQL中

NETWORK_PERMISSIONS 
user_id network_id perm 
1  1   3 
1  2   4 
2  3   3 
2  2   1 
3  2   1 
4  2   3 


DEVICES_PERMISSIONS 
user_id network_id device_id perm 
1  2   2   1 
2  2   2   1 

现在,我只需要USER_ID,对于净= 2是在network_permissions表(在perm = 3的用户中),但不在device_permissions中。

我在这种情况下的结果是:3,因为net_2的network_permission表中存在perm!= 3的用户,但不存在于device_permissions表中。

对不起,如果它感到困惑...谢谢你的帮助。

+0

你怎么得到那两个都是? – Strawberry 2013-03-20 11:18:22

+0

加入..我认为 – sharkbait 2013-03-20 11:22:42

+0

您期望NETWORK_PERMISSIONS.network_id = 2和NETWORK_PERMISSIONS.perm = 3,并且用户不在DEVICES_PERMISSIONS中是否正确? – shola 2013-03-20 11:22:49

回答

0

SELECT n.user_id FROM network_permissions如N 左连接devices_permissions AS d ON n.user_id = d.user_id WHERE d.user_id为空和n.network_id = 2和n.perm = 3

+0

是的!谢谢!但有一个更正:n.perm <> 3,所以我排除了用户。纠正答案! :) – sharkbait 2013-03-20 11:33:21

+0

有问题,你提到的用户用perm = 3 – shola 2013-03-20 11:34:04

+0

我想让用户用perm!= 3。对不起,这个错误 – sharkbait 2013-03-20 12:11:44

0
Select NETWORK_PERMISSIONS.network_id FROM NETWORK_PERMISSIONS LEFT JOIN DEVICES_PERMISSIONS on NETWORK_PERMISSIONS.network_id = DEVICES_PERMISSIONS.network_id AND NETWORK_PERMISSIONS.user_id = DEVICES_PERMISSIONS.user_id 
+0

没有network_permissions.device_id字段!它的user_id是 – sharkbait 2013-03-20 11:29:50

+0

。 – Kautil 2013-03-20 11:43:31

相关问题