mysql - 创建包含两个表的 View ,其中第二个表没有唯一 ID

标签 mysql sql join view pivot

我是 SQL 的新手,如果您能提供以下内容,我将不胜感激。

我有两个表,表 A 和表 B。我想创建一个连接这两个表的 View 。

表 A 在 user_ID 列下包含一个唯一用户 ID 列表,表 B 也有一个 user_ID 列,但此列表没有唯一用户 ID,因为其他列提供了有关这些用户 ID 的更多信息。

请查看第一个响应中的图片以获取示例。

我已经阅读了一些关于标准 VIEW 和 JOIN 查询的内容,但是我不确定如何从 A 和 B 创建一个 View ,其中“属性 1”中的值将成为它们自己的列 View 。

任何人都可以帮助阐明这一点吗?

最佳答案

试试这个:

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;

关于mysql - 创建包含两个表的 View ,其中第二个表没有唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27978517/

相关文章:

mysql - 呸!我在 ruby​​ 1.9.2 的 Rails 中不断收到此编码错误

java - 使用 jpa(MYSQL) 创建一对多关系

java - 从数据库中获取年份

java - 连接池环境中是否明确需要 statement.close()?

mysql - SQL从有限制的2个表中选择

MySQL 4 表连接

mysql - sql:选择每个用户投票最多的项目

MySql 根据同一表中的值从表中选择某些列

mysql - SQL获取不同的名字和姓氏

mysql - 复杂查询中的语法错误