数据库两个表交叉查询的问题

发布于 2022-09-06 21:00:07 字数 242 浏览 37 评论 0

一张商品表a,
一张商品标签表b
表a一个商品对应一条记录
表b一个商品对应多条记录(多个标签)

请问我如何一次性取出满足一定条件的表a和表b的记录???
已做过以下尝试-
1.通过full join关联两表,但这样会导致表a数据大量重复(表a是主表,几十个字段,表b三个字段)
2.用条件查出满足条件的表a id,再对每个id分别查询表b数据,再通过程序合并,但效率仍然很低。
不知道各位有没有更好的办法??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千仐 2022-09-13 21:00:07

postgre, 一对多用数组

WITH C AS (SELECT 商品ID,ARRAY_AGG(标签) AS 标签 FROM B GROUP BY 商品ID)
SELECT A.*, 标签 FROM A LEFT JOIN C USING(商品ID) WHERE 你的条件
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文