Join таблицы, названия которой неизвестно заранее
От: PSergey  
Дата: 29.09.05 09:56
Оценка:
Доброго времени суток. Помогите разобраться со следующей ситуацией. Хочу сделать join таблицы, название которой храниться в поле другой.


SELECT ...
  FROM tbProducts p
  INNER JOIN tbCategories c on (p.CategoryID = c.CategoryID)
  LEFT JOIN c.TableName params on (params.ProductID = p.ProductID)
  WHERE ...


Где c.TableName имя таблицы которую нужно джойнить. Как это реализовать?
Re: Join таблицы, названия которой неизвестно заранее
От: King Oleg Украина http://kingoleg.livejournal.com
Дата: 29.09.05 10:00
Оценка:
Здравствуйте, PSergey, Вы писали:

PS>Доброго времени суток. Помогите разобраться со следующей ситуацией. Хочу сделать join таблицы, название которой храниться в поле другой.


В sql — никак.
King Oleg
*Читайте DOC'и, они rules*
Re: Join таблицы, названия которой неизвестно заранее
От: Hobot Bobot США  
Дата: 29.09.05 10:03
Оценка:
Здравствуйте, PSergey, Вы писали:

PS>Доброго времени суток. Помогите разобраться со следующей ситуацией. Хочу сделать join таблицы, название которой храниться в поле другой.



PS>
PS>SELECT ...
PS>  FROM tbProducts p
PS>  INNER JOIN tbCategories c on (p.CategoryID = c.CategoryID)
PS>  LEFT JOIN c.TableName params on (params.ProductID = p.ProductID)
PS>  WHERE ...
PS>


PS>Где c.TableName имя таблицы которую нужно джойнить. Как это реализовать?


А сервер какой?
What a piece of work is a man! how noble in reason! how infinite in faculty! in form and moving how express and admirable! in action how like an angel! in apprehension how like a god! the beauty of the world! the paragon of animals!
Re: Join таблицы, названия которой неизвестно заранее
От: deniszb  
Дата: 29.09.05 10:05
Оценка:
Здравствуйте, PSergey, Вы писали:

PS>Доброго времени суток. Помогите разобраться со следующей ситуацией. Хочу сделать join таблицы, название которой храниться в поле другой.


смотри sp_executesql (MS SQL)
Re[2]: Join таблицы, названия которой неизвестно заранее
От: PSergey  
Дата: 29.09.05 10:31
Оценка:
HB>А сервер какой?

MS Sql Server 2000
Re[2]: Join таблицы, названия которой неизвестно заранее
От: tarasich  
Дата: 29.09.05 10:37
Оценка:
Здравствуйте, deniszb, Вы писали:

D>Здравствуйте, PSergey, Вы писали:


PS>>Доброго времени суток. Помогите разобраться со следующей ситуацией. Хочу сделать join таблицы, название которой храниться в поле другой.


D>смотри sp_executesql (MS SQL)


все равно без временных таблиц не получится...
Re[3]: Join таблицы, названия которой неизвестно заранее
От: Hobot Bobot США  
Дата: 29.09.05 10:39
Оценка:
Здравствуйте, PSergey, Вы писали:

HB>>А сервер какой?


PS>MS Sql Server 2000


тогда так

exec('SELECT ...  FROM tbProducts p  ... LEFT JOIN ' + c.TableName + ' ... WHERE ...')
What a piece of work is a man! how noble in reason! how infinite in faculty! in form and moving how express and admirable! in action how like an angel! in apprehension how like a god! the beauty of the world! the paragon of animals!
Re[3]: Join таблицы, названия которой неизвестно заранее
От: pkarklin  
Дата: 29.09.05 11:14
Оценка:
Здравствуйте, tarasich, Вы писали:

T>Здравствуйте, deniszb, Вы писали:


D>>Здравствуйте, PSergey, Вы писали:


PS>>>Доброго времени суток. Помогите разобраться со следующей ситуацией. Хочу сделать join таблицы, название которой храниться в поле другой.


D>>смотри sp_executesql (MS SQL)


T>все равно без временных таблиц не получится...


Интересно, и куда тут можно временные таблицы пристроить?!
Re: Join таблицы, названия которой неизвестно заранее
От: Mikst  
Дата: 13.10.05 14:05
Оценка:
Здравствуйте, PSergey, Вы писали:

PS>Доброго времени суток. Помогите разобраться со следующей ситуацией. Хочу сделать join таблицы, название которой храниться в поле другой.



PS>
PS>SELECT ...
PS>  FROM tbProducts p
PS>  INNER JOIN tbCategories c on (p.CategoryID = c.CategoryID)
PS>  LEFT JOIN c.TableName params on (params.ProductID = p.ProductID)
PS>  WHERE ...
PS>


PS>Где c.TableName имя таблицы которую нужно джойнить. Как это реализовать?


На вопрос ответили, только динамическим SQL , но

Если честно: зачем такое вообще нужно?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.