我的数据库中有两个表,我尝试通过视图合并,id
和user_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
答案 0 :(得分:1)
您当然可以使用两个表属性创建视图。该示例在两个表之间具有一对一映射,即对于id
表中的每个users
,permissions
中只有一行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。