Mysql的。根据1个表中的列从3个不同的表中选择数据

时间:2010-11-30 14:51:36

标签: mysql select join

这是我想要做的:

我有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

我需要根据itemType和itemId从表“footprints”中删除所有属性的最后30个项目。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我假设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