gpt4 book ai didi

mysql - 如何加入多对多关系

转载 作者:行者123 更新时间:2023-11-29 08:16:53 26 4
gpt4 key购买 nike

实体:

  • 型号
  • 类别
  • 关键字

模型与关键字具有多对多关系,类别与关键字具有多对多关系。

orm生成以下表格

  • 型号
  • 类别
  • 关键字
  • keyword_model
  • keyword_category

给定一个类别后,如何获取与该类别相关的所有模型?我会这样做

  • 按category.id从keyword_category获取所有关键字id
  • 将结果与 keywords_model 表连接
  • 连接的结果应该是所有相关的模型 ID

由于 symfony2 处理实体而不是表,因此似乎很难创建 mysql 查询。我尝试过类似的东西

SELECT x,y FROM MyBundle:Category x, MyBundle:Model y
JOIN x.keywords
JOIN y.keywords
WHERE
x.id = " . $category . "

但是这是无效的 mysql 语法。有什么想法如何在这里获取模型吗?

最佳答案

您可以尝试以下方法:

SELECT 
y
FROM
MyBundle:Model y
WHERE
EXISTS (
SELECT
x
FROM
MyBundle:Category x
JOIN
x.keywords xk
WHERE
xk MEMBER OF y.keywords AND
x = :category
)

或者如果您的亲戚是bidirectional :

SELECT 
y
FROM
MyBundle:Model y
JOIN
y.keywords yk
JOIN
yk.categories c
WHERE
c = :category

关于mysql - 如何加入多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20418257/

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