PostgreSQL结合表并过滤两个表

时间:2015-12-07 21:40:41

标签: sql database postgresql

我是PostgreSQL的新手,试图想出一种方法来过滤/组合两个表,然后用一个用户列表过滤结果。

我有两张桌子:

表:mi_user

device_uuid   display_name
     1           Mike
     2           John
     3           Kate
     4           Bob

表:mi_device

device_uuid   Status
     1        RETIRED
     2        ACTIVE
     3        VERIFED
     4        ACTIVE

我希望能够获取这两个表并进行查询并提取所有ACTIVE活动用户的列表。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

SELECT u.*
FROM   mi_user u
JOIN   mi_device d USING (device_uuid)
WHERE  d.status = 'ACTIVE';

Read about basic queries in the manual.

自您请求mi_user以来仅返回list of all users列。

但是,你的桌面设计似乎并没有多大意义。通常,用户表中会有user_id,用户可能有0-n或1-n设备,因此您可以将设备表中的user_id作为外键。

设备的状态(就像你拥有的那样)确实表明用户是"活跃的"?不是设备?