gpt4 book ai didi

php - Mysql Php合并3个表

转载 作者:行者123 更新时间:2023-11-29 02:29:57 25 4
gpt4 key购买 nike

基本上,在这个网络应用程序中,我有一个事件模块,用户可以在其中创建、编辑和删除事件,也可以为该事件上传照片。其他用户可以通过选择 I'm in 按钮或仅提及事件 Sound's Cool 来参与特定事件。现在有 3 个表 event_photo(用户上传的照片将保存在这里),event_inevent_cool,现在我需要一个事件事件提要,为此,我需要通过将它们分组为 photoincool 来合并所有 3 个表。所以我需要建议是创建一个表来列出这些事件,还是应该将所有结果合并到 php 中。以前我将所有 2 个结果组合在一个表中,但现在我想尝试一些不同的东西。有表结构。

event_photo 表

id      photo_url      business_id     event_id         user_id    caption    added_date
1 1111 12 2 3 test1 20130209t1
2 1122 13 3 4 test2 20130209t4
3 1133 14 2 3 test3 20130209t2

事件输入表

id  event_id    user_id    date_created
1 2 3 20130209t3

event_cool

id  event_id    user_id  date_created
1 2 4 20130209t5
2 3 3 20130209t6

现在 Feed 将是这样的,基于 date_created desc t6 -> t1

User_3 says cool for  Event_3
User_4 says cool for Event_2
User_4 added photo for Event_3
User_3 added photo for Event_2
User_3 attending Event_2
User_3 added photo for Event_2
User_3 added photo for Event_2

现在表格应该如何设计,我希望这是重要的问题,因为这可以解决有关事件提要的许多问题。谢谢

最佳答案

一个选项是拥有您的三个表并使用类似于以下内容的查询它们:

  SELECT *
FROM
( SELECT user_id,
event_id,
date_added as date_created,
'photo' as type
FROM event_photo
UNION
SELECT user_id,
event_id,
date_created,
'event_in' as type
FROM event_in
UNION
SELECT user_id,
event_id,
date_created,
'event_cool' as type
FROM event_cool
) s
ORDER BY date_created

为了简化您的代码,您可以创建一个 View :

CREATE OR REPLACE VIEW v_ordered_actions AS
SELECT *
FROM
( SELECT user_id,
event_id,
date_added as date_created,
'photo' as type
FROM event_photo
UNION
SELECT user_id,
event_id,
date_created,
'event_in' as type
FROM event_in
UNION
SELECT user_id,
event_id,
date_created,
'event_cool' as type
FROM event_cool
) s
ORDER BY date_created;

关于php - Mysql Php合并3个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14806192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com