0

我有以下表格

邮政

id  element_id   element_type
1      1           text
2      1           image
3      1           video

文本

id   message  
 1    asdfa sdf 

图片

 id  path  
 1    asfda/asfd/asdf

视频

 id    link
 1     asdf/asdfasdf

我想根据 element_type 获取数据。例如,如果 element_type 是 text 那么它应该从 text table 获取数据。如何为此编写查询。

如果 element_type 是文本,那么它不应该看到图像和视频表。它应该只从 text 和 post 表中获取数据。

4

1 回答 1

2

Use a left join to get all data even if null

select p.*, t.*, i.*, v.*
from post p
left join text t on t.id = p.element_id and p.element_type = 'text'
left join image i on i.id = p.element_id and p.element_type = 'image'
left join video v on v.id = p.element_id and p.element_type = 'video'
于 2013-07-04T15:34:59.863 回答