sql - 有没有更好的方法可以构建我的表,进行 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 行
解决方案
连接的成本很高,并且可能导致冗余数据,并且总行数远大于上述 4 个查询获得的实际行数。
因此,您必须使用这 4 个单独的查询,因为它们还包含您上面已经提到的不同数据
推荐阅读
- ios - “此应用需要 iOS 11.3”,我使用的是 11.3.3
- asp.net - 如何将自定义主题添加到 Umbraco Articulate?
- c# - 上下文菜单打开时,单击上下文菜单外的控件不会被击中
- adsense - 如何在我的网站上跟踪并删除它
- c# - Windows UWP BluetoothLE设备缓存
- python - 使用 Wikipedia Python 库检索 k 最相关文章背后的方法是什么?
- email - 使用 zoho 的 Rocket Chat smtp 传出电子邮件设置不起作用
- python - 如何使用 WTF 表单快速表单上传图像
- r - 无法在绘图小提琴图中抑制 x 轴标签
- javascript - 异常的浏览器错误和有关 javaScript 计算总和程序的建议