我有两张桌子:
table1
-id 1
-name animals
animals
-id 1
-age 13
现在我想创建类似这样的sql语句:
select age from (select name from table1 where id = 1)
可以在ms sql中执行此操作吗?
此致
答案 0 :(得分:4)
我认为这是一个糟糕的设计。我用一把钥匙把两张桌子绑在一起:
<强>分类强>
ID Type
1 Animal
2 Person
3 Building
<强>观光强>
ID Type Name Age
1 Animal Fluffy 13
2 Person Joe 23
3 Animal Lucy 3
4 Building Empire State Building 80
您的查询将是:
select age
from categories c
inner join things t on c.Type = t.Type
where c.ID = 1
在内容中的FK(加入)列上添加索引,以加快此速度。
答案 1 :(得分:1)
只能使用动态sql。
declare @sql nvarchar(max)
select @sql = 'select age from ' + name from table1 where id=1
exec sp_executesql @sql
请注意,这通常不是一个好主意,根据tvanfosson's answer更改设计会更好。
答案 2 :(得分:0)
我认为你想要它:
SELECT T1.NAME, T2.AGE
FROM TABLE1 T1
INNER JOIN ANIMALS T2 ON T1.ID=T2.ID
WHERE ID=1