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 がテキストの場合、テキスト テーブルからデータをフェッチする必要があります。これに対するクエリの書き方。

element_type がテキストの場合、画像とビデオのテーブルは表示されません。テキストとポストテーブルからのみデータを取得する必要があります。

4

1 に答える 1

2

a を使用し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'
于 2013-07-04T15:34:59.863 に答える