我在系统中有两个表。我正在尝试制作一个同时代表它们的视图,我不确定如何做到这一点,甚至不确定是否可以做到。
宠物
PetId INT PK
Name VARCHAR(100)
宠物其他名字
PetID INT PK FK
Name VARCHAR(100) PK
所以,我有一张宠物桌。名称(在此表中)是它们的正式通用名称。每只宠物可能有零对多的其他名称。这些名称永远不会显示,但要在搜索查询中使用。
那么,让我们看一些数据。
宠物资料
1. Fred
2. Barney
3. Foo
4. Megan Fox (boom tish)
PetsOtherName 数据
2. B-b-b-Barney
2. Bannana Barney
2. Banannarama
4. TapTap
所以......如果我查看这两个表,我希望得到以下结果......
SELECT *
FROM PetsView
ORDER BY PetId, Name
1. Fred
2. B-b-b-Barney
2. Barney
2. Bannana Barney
2. Banannarama
3. Foo
4. Megan Fox
4. TapTap
这将使我能够执行以下操作....
SELECT PetId, Name
FROM PetsView
WHERE CONTAINS(Name, 'Fox')
...并返回 4. Fox
SELECT PetId, Name
FROM PetsView
WHERE CONTAINS(Name, 'Fox')
...然后返回 4。 TapTap
干杯:)
PS。我不确定我写了这篇文章的标题,所以请随时适当地编辑它(或建议一个更好的标题,让我更新)。
更新:这是针对 sql2008 的,但我假设结果是 tsql .. 所以它应该/可以全面应用。