2017-02-21 4 views
0

Неправильно ли присоединиться к двум таблицам на разных типах данных, в частности, уникальный идентификатор и varchar?Неправильно ли присоединяться к двум таблицам по разным типам данных

SELECT... 
From TableA A 
Join TableB B 
On A.UniqueIdentifier = B.Varchar 
+0

хорошо, вы не можете сделать это. Сначала нужно сделать кастинг. И тогда у вас может быть производительность, потому что вы не сможете использовать индекс. –

+0

Вы должны определить 'Bad'. Будет медленно, Будет работать. Должен ли я менять таблицы на лучший дизайн? –

ответ

2

Да, конечно, это так, что повлечет за собой ненужные литейное другой тип (при условии, если неявное приведение возможно) в ряд и представить себе, что если у вас есть миллионы строк, на которых JOIN операция происходит.

+0

Я бы не сказал «Плохо» как таковое. Потому что, если это единственное поле, вам нужно соединить все Иордания и просто сделайте это. Но вы будете платить цену в исполнении. –

+1

Я бы сказал, что это плохо .... теперь, если это единственный вариант для присоединения, то что плохо - это дизайн, который заставляет субоптимальный запрос. –

+0

@JuanCarlosOropeza, не уверен ... возможно, вы никогда не испытывали этого, но на практике «JOIN» должно происходить между двумя совместимыми столбцами (я имею в виду совместимые типы) – Rahul

Смежные вопросы