2015-03-04 4 views
0

У меня есть БД, как это:MySQL: значение поля table1 в качестве имени для table2

Table1: 
---------- 
id 
id_item 
tablename (enum: 'table2','table3','table4') 

table2: 
---------- 
id 
value 

table3: 
----------- 
id 
value 

table4: [...] 

И я хочу запрос подобное, как это:

SELECT t1.id, t2.value FROM table1 AS t1 
LEFT JOIN t1.tablename as t2 ON t1.id_item=t2.id 

я попробовал этот «ERROR 1146 (42S02): Таблица «t1.table» не существует»

пожалуйста предложить любой из запроса, похожий на тот или новый формиата я являюсь Reday использовать

заранее.

+0

'table' - это ключевое слово в mysql, поэтому не используйте его как имя столбца или не удаляйте его с обратными окнами. Но я не думаю, что это решение. – Jens

+0

что вы хотите сделать? Где вы хотите присоединиться? здесь вы tring для выполнения соединения в столбце таблицы, которая вызывает ошибку –

+0

Возможный дубликат [MySQL> Таблица не существует. Но он (или должен)] (http://stackoverflow.com/questions/7759170/mysql-table-doesnt-exist-but-it-does-or-it-should) –

ответ

0
SELECT t1.id, t2.value FROM table1 AS t1 LEFT JOIN t1.tablename as t2 ON t1.id_item=t2.id 

Почему вы присоединиться к имени таблицы имя_таблицы с первой таблицы псевдонимов?

t1.tablename

Измените запрос в

SELECT t1.id, t2.value FROM table1 AS t1 LEFT JOIN tablename as t2 ON t1.id_item=t2.id 
                ^Here 
+0

это пример запроса, который я попробовал с помощью слов порядка – Praveen

+0

@Praveen http: //anothermysqldba.blogspot .in/2013/09/error-1146-42s02-table-doesnt-exist.html –

+0

свой пример запроса, который я разместил здесь. у меня есть таблица пользователя, имеющая информацию о потребителе, продавце, агенте, подобном этому, в зависимости от типа пользователя. Мне нужно получить данные из соответствующего типа table.user точно так же, как имя таблицы. – Praveen

0

Попробуйте этот запрос: -

SELECT t1.id, t2.value 
FROM table1 t1 
LEFT JOIN (SELECT id, tablename FROM table1) t2 
ON t1.id_item=t2.id; 

Может это то, что вы ищете.

+0

в моем случае таблица 2 является динамической временной таблицей 3 Мне нужна каждая вещь, основанная на поле имени таблицы в таблице1 – Praveen

+0

Теперь посмотрим мое редактирование. –

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