如何连接结点表中的笛卡尔积加入MySQL

如何连接结点表中的笛卡尔积加入MySQL,第1张

概述我有三个表:项目,交汇点和属性.我有五个项目(A到E)和五个属性(1到5).通过Junction Table,我已经分配了如下属性:A: 1, 3, 5 B: 1, 2, 3 C: 1, 4, 5 D: 1, 2, 3 E: 1, 4, 5 当我运行以下查询时,我得到了一个可爱的十五记录笛卡尔积(正如人们所期望的那样).SELECT I.id, I.item

我有三个表:项目,交汇点和属性.我有五个项目(A到E)和五个属性(1到5).通过Junction table,我已经分配了如下属性:

A: 1,3,5B: 1,2,3C: 1,4,5D: 1,3E: 1,5

当我运行以下查询时,我得到了一个可爱的十五记录笛卡尔积(正如人们所期望的那样).

SELECT I.ID,I.item_name,P.property_name FROM scratch.items IJOIN scratch.junction J ON J.item_ID = I.IDJOIN scratch.property P ON J.property_ID = P.ID;

我想要做的是将每个项目的属性名称连接到一个字段中,这样我就可以像这样吐出它们:

Record  |  item_ID  |  item_name  |  propertIEs----------------------------------------------------------------------------     0  |  A        |  Item A     |  Property 1,Property 3,Property 5     1  |  B        |  Item B     |  Property 1,Property 2,Property 3     2  |  C        |  Item C     |  Property 1,Property 4,Property 5     3  |  D        |  Item D     |  Property 1,Property 3     4  |  E        |  Item E     |  Property 1,Property 5----------------------------------------------------------------------------

与我此处的设计示例不同,每个项目可以包含任意数量的属性(包括零).最佳答案您可以像这样使用group_concat函数:

SELECT I.ID,group_concat(P.property_name) as propertIEsFROM scratch.items IJOIN scratch.junction J ON J.item_ID = I.IDJOIN scratch.property P ON J.property_ID = P.IDgroup by I.ID;
总结

以上是内存溢出为你收集整理的如何连接结点表中的笛卡尔积加入MySQL全部内容,希望文章能够帮你解决如何连接结点表中的笛卡尔积加入MySQL所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1168841.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存