创建包含两个 table 的视图,其中第二个 table 没有唯一 ID
Creating a view with two tables, where second table doesn't have unique IDs
我是 SQL 的新手,如果您能提供以下内容,我将不胜感激。
我有两个表,Table A 和 Table B。我想创建一个连接这两个表的视图。
Table A 在 user_ID 列下包含一个唯一用户 ID 列表,Table B 也有一个 user_ID 列,但此列表没有唯一与其他列一样,用户 ID 提供了有关这些用户 ID 的更多信息。
请查看第一个响应中的图片以获取示例。
我已经阅读了一些关于标准 VIEW 和 JOIN 查询的资料,但是我不确定如何从 A 和 B 创建一个视图,其中 'Attribute 1' 中的值将成为它们的值在视图中拥有自己的列。
任何人都可以帮助阐明这一点吗?
试试这个:
CREATE VIEW VW_User AS
SELECT A.User_ID, A.Name, A.Email,
MAX(CASE WHEN B.Attribute1 = 'a' THEN B.Attribute2 ELSE '' END) AS 'a',
MAX(CASE WHEN B.Attribute1 = 'b' THEN B.Attribute2 ELSE '' END) AS 'b',
MAX(CASE WHEN B.Attribute1 = 'c' THEN B.Attribute2 ELSE '' END) AS 'c'
FROM tableA A
LEFT JOIN tableB B ON A.User_ID = B.User_ID
GROUP BY A.User_ID;
我是 SQL 的新手,如果您能提供以下内容,我将不胜感激。
我有两个表,Table A 和 Table B。我想创建一个连接这两个表的视图。
Table A 在 user_ID 列下包含一个唯一用户 ID 列表,Table B 也有一个 user_ID 列,但此列表没有唯一与其他列一样,用户 ID 提供了有关这些用户 ID 的更多信息。
请查看第一个响应中的图片以获取示例。
我已经阅读了一些关于标准 VIEW 和 JOIN 查询的资料,但是我不确定如何从 A 和 B 创建一个视图,其中 'Attribute 1' 中的值将成为它们的值在视图中拥有自己的列。
任何人都可以帮助阐明这一点吗?
试试这个:
CREATE VIEW VW_User AS
SELECT A.User_ID, A.Name, A.Email,
MAX(CASE WHEN B.Attribute1 = 'a' THEN B.Attribute2 ELSE '' END) AS 'a',
MAX(CASE WHEN B.Attribute1 = 'b' THEN B.Attribute2 ELSE '' END) AS 'b',
MAX(CASE WHEN B.Attribute1 = 'c' THEN B.Attribute2 ELSE '' END) AS 'c'
FROM tableA A
LEFT JOIN tableB B ON A.User_ID = B.User_ID
GROUP BY A.User_ID;