Mysql. Выберите данные из 3 разных таблиц на основе столбца из 1 таблицы - PullRequest
1 голос
/ 30 ноября 2010

Вот что я хочу сделать:

У меня есть 3 таблицы: musicItems, photoItems, textItems
Каждая таблица имеет разные столбцы.

Table "musicItems" 
  id
  Owner_id
  audioId
  url
  duration

Table "photoItems" 
  id
  albumId
  userId 
  photoId
  url

Table "textItems" 
  id
  msgText

А у меня есть еще один стол

"footprints" 
  id
  itemType
  itemId

Мне нужно забрать последние 30 элементов из таблицы "footprints" со всеми свойствами в зависимости от itemType и itemId. Как я могу это сделать?

1 Ответ

0 голосов
/ 30 ноября 2010

Я сделал предположение, что столбец ItemType содержит имена таблиц, к которым ItemID относится

SELECT  *
FROM    footprints fp
        LEFT OUTER JOIN musicItems mi ON mi.ID = fp.itemID AND fp.ItemType = 'musicItems'
        LEFT OUTER JOIN photoItems pi ON pi.ID = fp.itemID AND fp.ItemType = 'photoItems'
        LEFT OUTER JOIN textItems ti ON ti.ID = fp.itemID AND fp.ItemType = 'textItems'
LIMIT   30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...