这可能是不可能的,但如果是的话会非常棒。我有以下基本表结构:
groups
group_id
other_stuff
users
user_id
other_stuff
users_to_groups
user_id
group_id
other_stuff
events
event_id
group_id (where the event belongs)
other_stuff
事件实际上是用户可以在网站上执行的各种操作的一组表。
我希望能够对表执行查询并让它返回如下结果:
event_type event_id info_columns ...
user_join user_to_group_id
photo_upload photo_id
comment comment_id
其中event_type列中的值将是查询根据源内容的表名生成的值。
我知道我可以使用多个查询然后在PHP中将它们拼凑在一起,但我想也许有一种方法可以完全在MySQL中完成。这样的事情甚至可能吗?如果是这样,实现它的基本步骤是什么?
答案 0 :(得分:0)
如果您有多个select语句,并且每个语句都获得了所需的数据,那么您当然可以加入它们。
其他人提出了类似的问题,mysql-join-most-recent-matching-record-from-one-table-to-another
现在,鉴于你只是要求最新的活动。您的伪代码
select <userinfo>
from users
join groups
on user=group
join (select lastest event by group
from events
) as tmp
on group=tmp
通过这种方式,您可以执行1次查询,将该工作交给数据库