【发布时间】:2012-03-09 01:56:34
【问题描述】:
我的数据库表结构如下:
datatype
data
mytable
现在数据类型有主键datatypeid,数据表有datatypeid作为外键,mytable id作为外键。
在数据类型中,我有一个名为 description 的列,其中包含 address1、address2 等
这些地址的值存储在数据表中,使用 datatypeid 作为参考。
所以我想创建一个 select 语句来显示来自 mytable 和 address1、address2 等的 id 作为列,其值来自 data.values,如下所示:
id address1 address2
1 test add test add2
2 test add test add2
2 test add test add2
这是我目前的查询,但它以不同的格式输出:
SELECT id
FROM datatype
INNER JOIN data ON datatype.DataTypeID = data.DataTypeID
INNER JOIN mytable ON data.ID = mytable.ID
编辑:
表结构:
datatype
-datatypeid int
-description varchar(50)
data
-id int
-datatypeid int
-datavalue varchar(50)
-mytableid int
mytable
-mytableid int
-datecreated datetime
样本数据
datatype :
datatypeid description
1 address1
2 address2
data :
id datatypeid datavalue mytableid
1 1 george street 1
mytable:
mytableid datecreated
1 2012-02-17 10:06:02.507
你能帮忙吗?
【问题讨论】:
-
这完全不清楚。请展示所涉及的表格的结构和一些示例数据。
-
如果我理解正确,您希望数据类型中的所有描述都成为此查询的列名,然后此查询的数据来自数据表。这是正确的吗?
-
如果数据类型中有静态行数,我可以帮助您(您可以使用 case 语句来填充列)。但是,如果数据类型中的行数是动态的,我想不出一种将行数据设置为列的好方法
-
@peroija 数据类型表是静态的
标签: sql join database-design