SQL VIEW组合表

时间:2017-05-06 01:07:04

标签: sql view

我的数据库中有两个表,我尝试通过视图合并,iduser_id应匹配。我已经检查了UNION ALL,但这似乎不是解决方案,因为表中实体的顺序可能不同,应该匹配。

用户

id    email              password
--------------------------------------
1     eric@test.com      sdgsdhdfhs
2     john@test.com      dfgsdgdfhg
3     mary@test.com      plkdfjvjvv

权限

index    user_id     allow_read   allow_write   allow_delete
-------------------------------------------------------------
1        2           1            0             1
2        3           1            1             1
3        1           0            0             0
应该成为:( @Gordon Linoff)

id    email              password       allow_read   allow_write   allow_delete
------------------------------------------------------------------------------
1     eric@test.com      sdgsdhdfhs     0            0             0
2     john@test.com      dfgsdgdfhg     1            0             1
3     mary@test.com      plkdfjvjvv     1            1             1

1 个答案:

答案 0 :(得分:1)

您当然可以使用两个表属性创建视图。该示例在两个表之间具有一对一映射,即对于id表中的每个userspermissions中只有一行user_id = id。如果是这种情况,则inner join可能有效。如果您只关心用户表,则可以使用left join。我测试了这个查询please find the fiddle

CREATE VIEW joined_table_view AS
SELECT u.id, u.email, u.password, p.user_id, p.allow_read, p.allow_write, p.allow_delete
FROM users u
LEFT JOIN permissions p
ON u.id = p.user_id;

此外,如果您想了解更多联接,请参阅here。一旦我测试它就应该更新sqlfiddle。