首页 > 解决方案 > 有没有更好的方法可以构建我的表,进行 4 表连接,或者我必须执行多个查询?

问题描述

执行此 GET 请求的正确方法是什么?我目前有4张桌子:

事件, event_comments, event_photos, event_users_going

最后 3 个表 event_comments、event_photos 和 event_users_going 都有一个使用 events 表主键的外键。

我不确定的是,我是否必须对所有 4 个表或 4 个单独的查询进行 JOIN?因为,每个表上的每个查询都返回不同数量的行。

例如,第一个查询将针对事件:

SELECT * FROM events where e_id = 1

这将返回 1 行。

第二个查询:

SELECT * FROM event_photos where e_id = 1

这将返回 12 行

第三个查询:

SELECT * FROM event_comments WHERE e_id = 1

这将返回 20 行

第四个查询:

SELECT * FROM event_users_going WHERE e_id = 1

这将返回 30 行

标签: sqlpostgresql

解决方案


连接的成本很高,并且可能导致冗余数据,并且总行数远大于上述 4 个查询获得的实际行数。

因此,您必须使用这 4 个单独的查询,因为它们还包含您上面已经提到的不同数据


推荐阅读