Я надеюсь, что это не повтор. Я проверил поиски, и я не могу найти четкого ответа на этот вопрос.
У меня есть таблица, первичный ключ которой установлен как UniqueIdentifier
.У меня также есть другая таблица со столбцом varchar
, который в основном содержит URL-адрес со строкой запроса, содержащей идентификаторы из моей первой таблицы.
Итак, мои 2 таблицы похожи на:
Таблица состояний
StateID StateName
EB06F84C-15B9-4397-98AD-4A63DA2A238E Active
Таблица URL
URL
page.aspx?id=EB06F84C-15B9-4397-98AD-4A63DA2A238E
То, что я пытаюсь сделать, это объединить URLTable
и StateTable
. Значение 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-адресов очень большая. Хотя, возможно, такова природа зверя, если только я ничего не могу сделать.