我有以下表格
交
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表中获取数据。 如何为此编写查询。
如果element_type是文本,则它不应该看到图像和视频表。它应该只从文本和post表中获取数据。
答案 0 :(得分:2)
即使left join
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'