mysql根据列的值连接多个表

问题描述 投票:-1回答:1

我正在使用一个post表和两种类型的实体学校,用户可以在这个表中添加一些内容。 post table有一个post_from字段来区分post是来自用户还是学校。

我想根据post_from字段编写一个连接到用户表或学校表的查询。

SELECT *
FROM post    
LEFT JOIN `user`
ON (user.id = post.uid AND post.post_type = 'user' )
LEFT JOIN school_profile
ON (school_profile.id = post.school_id AND post.post_type  = 'school')
mysql
1个回答
1
投票

你可以用一个联盟做到这一点:

SELECT post.*
FROM post    
INNER RJOIN `user`
ON (user.id = post.uid AND post.post_type = 'user' )

union

SELECT post.*
FROM post    
INNER JOIN school_profile
ON (school_profile.id = post.school_id AND post.post_type  = 'school')

或者,您可以这样做:

SELECT *
FROM post    
LEFT JOIN `user` ON (user.id = post.uid)
LEFT JOIN school_profile ON (school_profile.id = post.school_id)
WHERE post.post_type IN ('user', 'shcool')
© www.soinside.com 2019 - 2024. All rights reserved.