0

我需要使用来自两个不同表的数据创建一个视图。

我试过这个:

CREATE VIEW `moviesdatastore`.`view_user_group` AS
SELECT user_name FROM tbl_spj_user, 
SELECT group_name FROM tbl_spj_group;

但这会导致:

ERROR 1349: View's SELECT contains a subquery in the FROM clause

看不到子查询在哪里.....

如何从两个不同的表中创建数据视图?我需要它用于我的 java web 应用程序上的 JAAS。

4

3 回答 3

1

可能是一个加入是你想要的。

CREATE VIEW `moviesdatastore`.`view_user_group` AS
SELECT A.user_name, B.group_name 
FROM tbl_spj_user A
LEFT JOIN tbl_spj_group B ON A.group_id = B.id;
于 2013-06-08T11:30:35.933 回答
1

你可以使用工会

CREATE VIEW `moviesdatastore`.`view_user_group` AS
(
  SELECT user_name AS name FROM tbl_spj_user
)
UNION ALL
(
  SELECT group_name AS name FROM tbl_spj_group;
)

请注意,您不知道哪些条目来自组,哪些来自用户。如果您需要对此进行区分,请使用类型向视图添加另一列,例如:

CREATE VIEW `moviesdatastore`.`view_user_group` AS
(
  SELECT user_name AS name, 'user' AS type FROM tbl_spj_user
)
UNION ALL
(
  SELECT group_name AS name, 'group' AS type FROM tbl_spj_group;
)
于 2013-06-08T11:28:02.113 回答
1

如果你可以加入表格,那么加入应该比联合更好

CREATE VIEW  `moviesdatastore`.`view_user_group` AS 
SELECT 
user_name 
FROM tbl_spj_user 
INNER JOIN tbl_spj_group ON tbl_spj_group.groupID=tbl_spj_user.groupID
于 2013-06-08T11:30:01.023 回答