2016-12-19 4 views
0

Как выбрать из разных таблиц, выбрав id из таблицы_1.Получить данные из таблицы на основе имени таблицы в качестве значения поля из другой таблицы

Я попытался с помощью

SELECT * FROM (SELECT Table_Name FROM Table_1 WHERE id = 1) 

распечатать все записи из topics_tbl.

Table_1:

id Table_Name  
1 topics_tbl 
2 teachers_tbl 

topics_tbl:

id topics 
1 English 
2 Math 
3 Science 

teachers_tbl:

id first_Name last_Name 
1 John  Dowe 
2 Joe  Smith 
3 Mary  Lee 
+1

Вам, кажется, нужна помощь. Мы готовы оказать некоторую помощь, но сначала вы должны задать нам вопрос. Как указано, это не имеет никакого смысла, что вы пытаетесь сделать здесь. –

+0

Табличные метаданные требуют некоторой работы. Текущие реляционные таблицы не относятся к преподавателям по темам. В topic_tbl должен быть столбец topic_id или таблица ссылок, которая связывает учителей с их темами. Вам нужно будет решить, может ли данный преподаватель научить более одной теме. Если это так, я бы использовал таблицу ссылок, которая поддерживает отношения от одного до многих. – JohnH

ответ

3

Вы можете создать динамический запрос, как показано ниже, и выполнить его с помощью EXECUTE sp_executesql

DECLARE @tableName VARCHAR(256), @sqlString VARCHAR(MAX); 

SELECT @tableName=Table_Name FROM Table_1 WHERE id = 1; 

SET @sqlString = 'SELECT * FROM ' + @tableName; 

EXECUTE sp_executesql @sqlString 

sp_executesql

+1

Вы можете сделать 'WHERE id = @ idParam' и' @ idParam' здесь параметр – Aruna

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