我希望这不是一个重复。 我检查了搜索,我似乎无法找到一个明确的答案。
我有有它的主键设置为一个表UniqueIdentifier
。 我也有具有另一个表varchar
,基本上包含与包含我的第一个表的GUID的查询字符串的URL列。
所以,我的2个表是这样的:
StateTable
StateID StateName
EB06F84C-15B9-4397-98AD-4A63DA2A238E Active
URLTable
URL
page.aspx?id=EB06F84C-15B9-4397-98AD-4A63DA2A238E
我正在试图做的是联合起来URLTable
和StateTable
ON的值StateID
包含在URL表格中的URL。 我还没有真正想出的加入。 我甚至试过只选择了一个表,并试图通过在过滤的值StateTable
。 我试着做这样的事情:
SELECT *
FROM URLTable
WHERE EXISTS
(SELECT *
FROM StateTable
WHERE URL LIKE '%' + StateID + '%')
即使不工作,因为它说我比较uniqueidentifier
和varchar
。
有什么办法加入2个表使用类似命令,其中类似命令不是比较2个不兼容的变量?
谢谢!!
更新:让我补充我应该提到一些其他的东西。 查询是建立分析报告的目的。 该表是一个CMS分析软件包的一部分...所以更新或更改表结构不是一个选项。
其次,这些表看到交通非常高的量,因为他们正在拍摄现场的分析......这样的表现是非常多的问题。 第三件事是,在我的例子,我说的id =但可能有多个值,例如id=guid&user=guid&date=date
。
更新2:还有一件事我才意识到我的恐惧是,有时查询字符串已经从GUID删除划线..有时不是..所以,除非我“米错,我不能投子,以Uniqueidentifier
可以。任何人证实? 叹息 。我没有得到它使用工作
REPLACE('-','',CONVERT(varchar(50), a.AutomationStateId))
但现在我非常符合这个性能问题担心,因为该URL的表非常大。 这可能是野兽的本质,不过,除非有什么我能做的。