MySQL объединяет таблицы, где имя таблицы является полем другой таблицы

У меня 5 таблиц. Один основной и 4 дополнительных (у них разные столбцы).

  1. объекты
  2. obj_mobiles
  3. obj_tablets
  4. obj_computers

Вот структура моей основной таблицы (объектов).

ID | тип | имя | и т.д ...

Итак, я хочу объединить объекты с другими (obj_mobiles, obj_tablets, ...) таблицами, в зависимости от поля типа. Я знаю, что мне следует использовать динамический SQL. Но сделать процедуру не могу. Я думаю, это должно выглядеть примерно так.

SELECT objects.type into @tbl FROM objects;
PREPARE stmnt FROM "SELECT * FROM objects AS object LEFT JOIN @tbl AS info ON object.id = info.obj_id"; 
EXECUTE stmnt;
DEALLOCATE PREPARE stmnt;

Также псевдокод

SELECT * FROM objects LEFT JOIN [objects.type] ON ... 

Может ли кто-нибудь опубликовать процедуру? Также я хочу, чтобы все строки, а не только 1 строка. Спасибо.

6
задан Cyberon 13 January 2012 в 15:00
поделиться